Rya*_*yan 8 java database orm android ormlite
我有两个类设置,如下所示.我很困惑,当我需要注释作为外国收藏品的东西,当我不需要.这也可能听起来很愚蠢,但在ORMLite
文档中没有说明是否允许非外国收藏.如果我有一个int
自动装入Integer
s 的列表怎么办?我可以坚持使用@DatabaseField
上面的标准Collection
吗?ORMLite
据说,一个外国收藏品也必须有后备参考才能发挥作用(对父母的一个参考,给出一对多的实际情况).对于下面的示例,我假设您应该注释myBList
为外部集合以及创建myA
外部对象,但是您如何处理myStringList
?
我在这里看过示例代码,但它没有回答我的问题:http://ormlite.com/docs/examples
public class A {
private Set<B> myBList = new HashSet<B>();
private List<String> myStringList = new ArrayList<String>();
private long id;
public A(){}
public Set<B> getMyBList() {
return myBList;
}
public void setMyBList(Set<B> myBList) {
this.myBList = myBList;
}
public List<String> getMyStringList() {
return myStringList;
}
public void setMyStringList(List<String> myStringList) {
this.myStringList = myStringList;
}
public void setId(long id){
this.id = id;
}
public long getId(){
return id;
}
}
public class B {
private int myInt;
private String myString;
private A myA;
private long id;
public B(){}
public A getMyA(){
return myA;
}
public A setMyA(A a){
myA = a;
}
public int getMyInt() {
return myInt;
}
public void setMyInt(int myInt) {
this.myInt = myInt;
}
public String getMyString() {
return myString;
}
public void setMyString(String myString) {
this.myString = myString;
}
public void setId(long id){
this.id = id;
}
public long getId(){
return id;
}
}
Run Code Online (Sandbox Code Playgroud)
@Robert是对的.当hibernate持久化一个集合(甚至是一个数组)时,它会使用带有外来id的隐藏额外表来实现 - 换句话说就是隐藏的外部集合.ORMLite试图遵守KISS原则,因此您可以"手动"定义外国馆藏.
我添加了有关存储集合的更多详细信息.
这意味着您不能保留Integer
类型,因为没有foreign-id.此外,您的代码可以定义外部集合Collection<Order>
或ForeignCollection<Order>
.任何一个都将设置为ForeignCollection
.ORMLite不支持列表或其他集合类型.