自我表中的Hibernate @MapKey

时间:2013-06-21 18:26:28

标签: hibernate collections map mapping

我有一个要求,即实体对象需要一个Map集合,MapKey在同一个表中作为列。实体对象基金可以拥有相关基金,每个基金具有独特的基金类型。我需要将相关资金作为地图,其中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;

 }

0 个答案:

没有答案