【发布时间】:2011-11-26 10:16:11
【问题描述】:
我有一个包含两个元素集合的实体对象:
@Entity
public class Report {
// Electronic transactions items map
@ElementCollection(fetch = FetchType.EAGER)
@MapKeyColumn(name = "catElecItem_key", nullable = false)
@Cascade(value = { CascadeType.ALL })
public Map<Category, ReportItem> catElecItemMap;
// Branch transactions items map
@ElementCollection(fetch = FetchType.EAGER)
@MapKeyColumn(name = "catBranchItem_key", nullable = false)
@Cascade(value = { CascadeType.ALL })
public Map<Category, ReportItem> catBranchItemMap;
}
创建表格时,会生成一个名为 Report_ReportItem 的表格,用于在 Category 和映射的 ReportItem 之间进行映射。但是,当尝试保存地图时,这会失败,因此 *catElecItem_key* 或 *catBranchItem_key* 将为空。 如果我尝试使用 nullable = true 进行注释,则该表将无法创建,因为这两个键都用作主键定义的一部分。
是否可以为每个集合指定使用不同的表?
【问题讨论】:
标签: java hibernate jpa collections playframework