2011-06-07 35 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