java我可以在@Embedded中使用@ElementCollection吗?
我有一个包含更多字段的可选子实体的实体。子实体也有一个元素集合
这在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)]
# 1 楼答案
这听起来可能很奇怪,但它确实有效:
将所有注释从字段移动到getter,错误就会消失