Es gelingt mir nicht, eine Viele-zu-viele-Verbindung mit DataNucleus mit JDO aufrechtzuerhalten. Ich habe zwei Klassen Book
und Shop
. Dies ist die ORM-Mapping-Datei:Many-to-Many-Beziehung in DataNucleus (JDO) wird nicht beibehalten
<?xml version="1.0"?>
<!DOCTYPE orm PUBLIC
"-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 2.0//EN"
"http://java.sun.com/dtd/orm_2_0.dtd">
<orm>
<package name="com.mypackage.pojo">
<class name="Book" identity-type="datastore">
<datastore-identity>
<column name="BOOK_ID" />
</datastore-identity>
<field name="name">
<column length="100" jdbc-type="VARCHAR" />
</field>
<field name="shops" persistence-modifier="persistent"
table="BOOKS_SHOPS">
<collection element-type="com.mypackage.pojo.Shop" />
<join>
<column name="BOOK_ID" />
</join>
<element>
<column name="SHOP_ID" />
</element>
</field>
</class>
<class name="Shop" identity-type="datastore">
<datastore-identity>
<column name="SHOP_ID" />
</datastore-identity>
<field name="name">
<column length="50" jdbc-type="VARCHAR" />
</field>
<field name="books" persistence-modifier="persistent"
table="BOOKS_SHOPS">
<collection element-type="com.mypackage.pojo.Book" />
<join>
<column name="SHOP_ID" />
</join>
<element>
<column name="BOOK_ID" />
</element>
</field>
</class>
</package>
</orm>
Ich versuche, ein Buch zu einem Geschäft und umgekehrt wie diese, zu verknüpfen:
shop.addBook(book);
book.addShop(shop);
machen diese beiden Objekte persistent macht wieder nichts . Sowohl vor als auch nach dem obigen Code-Snippet ist ObjectState
detached-clean
.
Was könnte ich falsch machen?
Da „gemappt-by“ benötigt wird, um die beiden Seiten der Beziehung zueinander in Beziehung zu ... Auch bekannt als bidirektionaler zu bieten habe. – DataNucleus