【发布时间】:2015-03-04 15:17:20
【问题描述】:
我有一个包含更多字段的可选子实体的实体。子实体再次具有元素集合。
这对于 Hibernate 来说通常是不可能的还是我错过了什么?
@Entity @Table(name="my_entity")
public class MyEntity {
@Id
private Long id;
@Embedded
@JoinTable(name="..." joinColumns=@JoinColumn(name="myEntityId"))
private OptionalFields optionalFields;
}
@Embeddable
public class OptionalFields {
@ElementCollection
@CollectionTable(name="...", joinColumns=@JoinColumn(name="myEntityId"))
private List<OpeningHoursItem> openingHours;
}
@Embeddable
public class OpeningHoursItem {
}
错误信息是:
Could not determine type for: java.util.List, at table: my_entity, for columns: [org.hibernate.mapping.Column(opening_hours)]
【问题讨论】:
-
this 回答你的问题了吗?
-
感谢@Jan,有趣的链接。它相似但不完全相同,因为我有基数 1:1:N 而你的链接有 1:M:N。
-
我无法重现该错误。如果我只将任何字段添加到 OpeningHoursItem 并用正确的名称替换 name='...' - 它可以工作。
-
@wypieprz O RLY???哎呀。你用的是什么版本的休眠?我的是 4.3.6.Final
-
4.3.5.Final (hibernate-core + hibernate-entitymanager + hibernate-jpamodelgen + hibernate-c3p0) 和 5.1.0.Final (hibernate-validator)