我有一个类,我不知道如何适当地注解。
我对保持器的目标::数据:
- 列表不应该按照比较器来维护顺序,而应该按照数组中元素的自然顺序来维护顺序。(如果有帮助的话,可以是ndx列。)
- 保持器将拥有对数据的唯一引用,因此Cascade all可能也适用。
我也开放一个不同的设计,删除Map,如果这将使一个更干净的设计。
@Entity
public class Holder extends DomainObject {
private Map<Enum,List<Element>> data;
}
@Entity
public class Element extends DomainObject {
private long valueId;
private int otherData;
}
@Mappedsuperclass
public class DomainObject {
// provides id
// optimistic locking
// create and update date
}
3条答案
按热度按时间xqkwcwgp1#
我认为使用hib(-core)不可能Map任何集合的集合:
集合可以包含几乎任何其他Hibernate类型,包括所有基本类型、自定义类型、组件,当然还有对其他实体的引用。
(from官方文件)
注意几乎和集合类型的省略。
解决方法:您需要在集合保持器和元素之间引入一个新类型。您可以将此类型Map为实体或组件,它引用Map的原始内容,在本例中为列表。
类似于:
Map的其余部分取决于您的特定情况,但相当简单。
6l7fqoea2#
这是一个关于hibhttp://blog.xebia.com/2007/10/05/mapping-multimaps-with-hibernate/中的集合的博客
希望它能帮上忙。它帮了我。
此致,安东
wqnecbli3#
请注意,引用的Hibernate文档链接似乎已过时,我发现以下链接有效:http://docs.jboss.org/hibernate/core/3.5/reference/en/html/collections.html