2011-06-07 84 views
1

我正在實施一個小項目,我想知道ORMLite是否支持@DatabaseMapping的逆映射。我正在尋找的是類似於JPA/Hibernates的逆映射。下面,假設,很傻例如,表BlogPost帶有逆映射的ORMLite外部@DatabaseField?

 
@DatabaseTable 
public class BlogPost { 
    @DatabaseField(foreign = true) 
    private Author owner; 
} 

和根據Author類,而不是真的那麼重要:

 
@DatabaseTable public class Author { } 

這將導致下面的SQL(只是相關部分):

CREATE TABLE blogpost (... , owner_id INTEGER NOT NULL, ...) CREATE TABLE author (...)

見表博文現在怎麼對作者的外鍵。不過,我更喜歡這種方式,即作者應該有一個blogpost_id外鍵。 (我告訴過你這是一個愚蠢的例子......)。

隨着逆映射,我可以利用級聯進行刪除,但我還沒有在ORMlite文檔中找到任何關於這個的文檔。這不是一個功能,還是我只是錯過了一些東西?

+0

對我的答案@ilikeorangutans的任何反饋? – Gray 2011-10-14 14:43:03

+0

對不起,我一段時間沒有工作。感謝您的答覆。看到我的評論如下。 – ilikeorangutans 2011-10-15 18:54:30

回答

1

我對這個問題有點困惑,但我想我會盡力回答它。

我不明白這是如何工作@ilikeorangutans。我認爲一個作者有多個博客帖子?那麼賬戶頻道上怎麼會有一個blogpost_id?你可以有一個連接表,其中包含一個author_id和一個blogpost_id,但這隻會增加複雜性。

如果你看看this discussion和這個webpage,你可以看到Hibernate的逆映射是關於誰控制關係並負責更新行。在這兩種情況下,BlogPost將有一個author_id而不是相反。

ORMLite確實支持的「洋集」,您可以在Author對象將它添加到集合添加一個BlogPost到數據庫的概念。欲瞭解更多信息,請參閱foreign collection documentation

對不起,如果我失去了一些東西。

+0

假設是每個帖子只有一個作者。我研究了外國收藏,但他們沒有做我想要的。整個想法是,我可以使用級聯刪除自動刪除相關的行,例如,如果您刪除作者,*所有*他的帖子被刪除。不知道這是否合理 – ilikeorangutans 2011-10-15 18:55:09

+0

是的,ORMLite不支持級聯。不知道它會永遠。很難平衡「精簡版」和人們想要的功能。 – Gray 2011-10-15 22:00:15

+0

相關http://stackoverflow.com/questions/6789075/deleting-using-ormlite-on-android – Gray 2011-10-16 16:18:45