These are the tables generated by ISIS. I don't see any relationship generated
between the tables.
CREATE TABLE "ShoppingBasketItem"
[exec] (
[exec] "ShoppingBasketItem_ID" BIGINT GENERATED BY DEFAULT AS IDENTITY,
[exec] "amount" NVARCHAR(255) NOT NULL,
[exec] "cardNumber" NVARCHAR(255) NOT NULL,
[exec] "description" NVARCHAR(255) NULL,
[exec] "location" NVARCHAR(255) NOT NULL,
[exec] "shoppingBasket_id_OID" BIGINT NOT NULL,
[exec] "version" BIGINT NOT NULL,
[exec] "shoppingBasketItem_id_OID" BIGINT NULL,
[exec] CONSTRAINT "ShoppingBasketItem_PK" PRIMARY KEY
("ShoppingBasketItem_ID")
[exec] )
CREATE TABLE "ShoppingBasket"
[exec] (
[exec] "id" BIGINT GENERATED BY DEFAULT AS IDENTITY,
[exec] "cardNumber" NVARCHAR(255) NOT NULL,
[exec] "orderTotal" INTEGER NOT NULL,
[exec] "version" BIGINT NOT NULL,
[exec] CONSTRAINT "ShoppingBasket_PK" PRIMARY KEY ("id")
[exec] )
Any help would be appreciated.
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