如何映射Hibernate中的整数列表? tanx!映射与休眠的整数列表
这样的:
@Entity
class A{
List<Integer> p;
@OneToMany
getP(...){..};
setP(...){..};
}
如何映射Hibernate中的整数列表? tanx!映射与休眠的整数列表
这样的:
@Entity
class A{
List<Integer> p;
@OneToMany
getP(...){..};
setP(...){..};
}
使用@ElementCollection映射。请参阅documentation
创建一个包含整数作为一个字段值一个新的实体,然后映射到实体,而不是整数的列表。
您将不得不创建一个存储这些ID并将该表作为常规@OneToMany关系的新表。
@Entity
class A{
List<MyRefTable> p;
@OneToMany
getP(...){..};
setP(...){..};
}
@Entity MyRefTable {
long myRefTableId;
int p;
}
就像其他任何与A实体具有OneToMany关系的表一样。 数据库中没有“list”构造。
塞巴斯蒂安
这对于如此简单的事情来说开销太大了。 @ElementCollection将完成这项工作 –
您可以使用元素集合而不是创建单独的实体,这将具有真实的构图。请参考doc
这对于这么简单的事情来说开销太大了。 @ElementCollection将完成这项工作 –
在数据库中进行连接的开销非常大,这与使用'ElementCollection'不会有太大的不同。当然,'ElementCollection'具有一些优点,比如略显冗长,但我认为仅仅因为可能有更好的答案而对每个可行的答案进行倒票是不公平的。 – Thor84no
对不起,但你的建议基本上不好。只是因为无法正确映射对象模型而开始污染数据库。也许在小型项目或个人项目中添加列是可以接受的,但在大型企业级数据库中,每个新列都必须合理,不能像任何开发人员那样添加。这同样适用于Java端。您的实施问题会影响公共课程界面。通常情况下,如果你没有JPA,你永远不会创建一个奇怪的对象列表'List'只是为了存储'Integer'。 –