我有一个要求,实体对象需要有一个 Map 集合,其中 MapKey 是同一个表中的列。实体对象 Fund 可以具有相关的 Funds,每个 Fund 具有唯一的 Fund 类型。我需要将相关资金作为一个 Map,其中 FundType 是一个枚举类。Hibernate 不会将relatedFunds 持久化到表中。只有母基金被插入。这是我的实体对象:
@Entity
@Table(name="T_FUND")
public class Fund {
@Id
@GeneratedValue
protected Long id;
@Column(name="FUND_TYPE", nullable = false)
@Enumerated(EnumType.STRING)
protected FundType fundType;
@OneToMany(mappedBy="mainFund", cascade = {CascadeType.ALL})
@MapKey(name="fundType")
protected Map<FundType,Fund> relatedFunds;
@ManyToOne(targetEntity = FundImpl.class,cascade = {CascadeType.ALL})
protected Fund mainFund;
@Column(name="FULL_NAME", nullable = false, length = 255)
protected String fullName;
}