Hi, Dharmesh.
Can you copy on an email the class definition for
org.atos.tfgm.basket.ShoppingBasketItem?
Perhaps the JDO annotations for identity are not properly defined.
See [1] for an example. The relevant ones are:
@javax.jdo.annotations.PersistenceCapable(identityType=IdentityType.DATASTORE)
@javax.jdo.annotations.DatastoreIdentity(
strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY,
column="id")
@javax.jdo.annotations.Version(
strategy=VersionStrategy.VERSION_NUMBER,
column="version")
Regards,
Oscar
[1]
https://github.com/apache/isis/blob/master/example/archetype/quickstart_wicket_restful_jdo/src/main/resources/archetype-resources/dom/src/main/java/dom/todo/ToDoItem.java
El 13/01/2014, a las 18:03, Chohan, Dharmesh <[email protected]>
escribió:
> Hello
>
> I have sorted out the issue below, however I have encountered another problem,
>
> Data already exists
>
> integrity constraint violation: NOT NULL check constraint; SYS_CT_10102
> table: "ShoppingBasketItem" column: "shoppingBasket_id_OID"
>
> This is the log output and am not sure why shoppingBasket_id_OID is NULL
>
> [exec] 16:58:55,845 [Native qtp1742392524-31 DEBUG]
> INSERT INTO "ShoppingBasketItem"
> ("cardNumber","location","description","amount","shoppingBasket_id_OID","version","shoppingBasketItem_id_OID")
> VALUES (<'123456789001'>,<'Please_Select'>,<'Item
> 1'>,<'▒5'>,<null>,<1>,<null>)
> [exec] 16:58:55,845 [Persist qtp1742392524-31 WARN ]
> Insert of object "org.atos.tfgm.basket.ShoppingBasketItem@4e50079b" using
> statement "INSERT INTO "ShoppingBasketItem"
> ("cardNumber","location","description","amount","shoppingBasket_id_OID","version","shoppingBasketItem_id_OID")
> VALUES (?,?,?,?,?,?,?)" failed : integrity constraint violation: NOT NULL
> check constraint; SYS_CT_10102 table: "ShoppingBasketItem" column:
> "shoppingBasket_id_OID"
> [exec] 16:58:55,845 [Persist qtp1742392524-31 WARN ]
> Insert of object "org.atos.tfgm.basket.ShoppingBasketItem@4e50079b" using
> statement "INSERT INTO "ShoppingBasketItem"
> ("cardNumber","location","description","amount","shoppingBasket_id_OID","version","shoppingBasketItem_id_OID")
> VALUES (?,?,?,?,?,?,?)" failed : integrity constraint violation: NOT NULL
> check constraint; SYS_CT_10102 table: "ShoppingBasketItem" column:
> "shoppingBasket_id_OID"
> [exec] 16:58:55,845 [Persist qtp1742392524-31 WARN ]
> Insert of object "org.atos.tfgm.basket.ShoppingBasketItem@4e50079b" using
> statement "INSERT INTO "ShoppingBasketItem"
> ("cardNumber","location","description","amount","shoppingBasket_id_OID","version","shoppingBasketItem_id_OID")
> VALUES (?,?,?,?,?,?,?)" failed : integrity constraint violation: NOT NULL
> check constraint; SYS_CT_10102 table: "ShoppingBasketItem" column:
> "shoppingBasket_id_OID"
> [exec] 16:58:55,945 [IsisTransaction qtp1742392524-31 INFO ] abort
> transaction IsisTransaction@2fab0086[state=MUST_ABORT,commands=0]
>
> Regards
> Dharmesh
>
> -----Original Message-----
> From: Chohan, Dharmesh [mailto:[email protected]]
> Sent: Monday, January 13, 2014 4:09 PM
> To: [email protected]
> Subject: Domain Mappings 1:m Exception
>
> Hi
>
> I am implementing a domain object mapping of 1 to many. I have followed the
> documentation on
> http://isis.apache.org/components/objectstores/jdo/managed-1-to-m-relationships.html
>
> This is what I have implemented,
>
> @javax.jdo.annotations.Persistent(mappedBy="shoppingBasket")
> private SortedSet<ShoppingBasketItem> shoppingBasketItem = new
> TreeSet<ShoppingBasketItem>();
>
> @javax.jdo.annotations.Column(allowsNull="false")
> @MemberOrder(sequence = "3")
> public SortedSet <ShoppingBasketItem> getShoppingBasketItem() {
> return shoppingBasketItem;
> }
>
> public void setShoppingBasketItem(SortedSet <ShoppingBasketItem>
> shoppingBasketItem) {
> this.shoppingBasketItem = shoppingBasketItem;
> }
>
> public class ShoppingBasketItem implements Comparable<ShoppingBasketItem> {
>
> private ShoppingBasket shoppingBasket;
>
> @javax.jdo.annotations.Column(allowsNull="false")
> public ShoppingBasket getShoppingBasket() {
> return shoppingBasket;
> }
>
> public void setShoppingBasket(ShoppingBasket shoppingBasket) {
> this.shoppingBasket = shoppingBasket;
> }
>
> ...
>
> When I run ISIS and test the screen, I am getting the following exception,
>
> * java.lang.IllegalArgumentException
> * No such method ' getShoppingBasketItem' or 'isShoppingBasketItem'
> *
> org.apache.isis.applib.util.Clause#getValueOf(ObjectContracts.java:204)
> *
> org.apache.isis.applib.util.ObjectContracts#compare(ObjectContracts.java:45)
> *
> org.atos.tfgm.basket.ShoppingBasketItem#compareTo(ShoppingBasketItem.java:117)
> *
> org.atos.tfgm.basket.ShoppingBasketItem#compareTo(ShoppingBasketItem.java:15)
> * java.util.TreeMap#put(TreeMap.java:545)
> * java.util.TreeSet#add(TreeSet.java:238)
> *
> org.atos.tfgm.basket.ShoppingBaskets#getBasket(ShoppingBaskets.java:150)
> *
> sun.reflect.NativeMethodAccessorImpl#invoke0(NativeMethodAccessorImpl.java:-2)
> *
> sun.reflect.NativeMethodAccessorImpl#invoke(NativeMethodAccessorImpl.java:39)
> *
> sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:25)
> * java.lang.reflect.Method#invoke(Method.java:597)
>
>
> Have I implemented the relationship incorrectly or missing something.
>
>
> Regards
> Dharmesh
>