2012-12-04 134 views
3

我已經在網站上搜索過所有的網站 但是,甚至沒有一個關於如何與jdo建立多對一關係的例子。 https://developers.google.com/appengine/docs/java/datastore/jdo/relationships與JDO和GAE的多對一關係

但我找不到如何做到這一點。

可以說我有這個DB:

Cars(CarID,OwnerID,...) 
Owner(OwnerID,...) 

而且我想一個新的汽車創造新的實體 - 我怎麼能做到嗎?

我不想爲擁有者創建另一個實體,如果擁有者已經在數據庫中,但是如果他不是我想要創建新所有者。

感謝任何示例代碼或博客鏈接如何處理它。

編輯: 它似乎就像你認爲它的bidir關係。 所以我認爲你沒有理解我。 可以說,我們不是在談論汽車和所有者 我們正在體裁和宋

現在談論

體裁不需要知道歌! 宋需要知道他的流派!

我的類別是:

public class Genre { 
@PrimaryKey 
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
long id; 
@Persistent 
String genre; 

} AND:

public class Song{ 
long id; 
    @Join(name="GENRE_JOIN") 
Genre genre; 

}

在此先感謝!

回答

0

所有的GAE文檔都提到了DataNucleus JDO文檔的全部細節,所以我不明白爲什麼他們應該提供所有的例子。因爲你的關係是貌似(不是說你把它定義)1-N雙向關係的業主方,和N-1個雙向的車邊,然後http://www.datanucleus.org/products/accessplatform_3_1/jdo/orm/many_to_one.html 的JDO規範也將有充分的例子。

+0

「感謝任何示例代碼或博客鏈接,瞭解如何處理它。」 我無法從網站獲得如何使它! 當我把@Join(NAME =「ACCOUNT_USER」) 我得到這個錯誤: name屬性未定義註釋類型加入 如果你把如何做完整的例子,其將是有益的所有的社區... 在此先感謝 –

+0

頁面確實給出了一個完整的例子。也許如果你開始在你的問題中發佈你的課程,那麼人們不必花時間猜測 – DataNucleus

+0

我已經更新了我的問題,完整的例子可能會很棒。 –

0
class Owner { 
    @Persistent(mappedBy = "owner") 
    private List<Car> cars; 
} 

class Car { 
    @Persistent 
    private Owner owner; 
} 

Car car = new Car(); 
//search for the owner. 
car.setOwner(owner); 
+0

這個例子對我來說不好,因爲它是雙向的。 我想讓車子知道車主。但車主不需要知道汽車! –

+1

可以說我們不是在談論汽車和車主! 我們正在談論歌曲和流派。它的N-1關係如此。流派不需要知道所有的歌曲。但歌曲需要知道他的流派! –