JPA映射中的问题

时间:2011-01-14 07:04:38

标签: jpa eclipselink

我有一种情况,我的数据库表如下所示,我想知道如何为这种类型的JPA映射 表,特别是对于没有主键ID

的auction_param_values

表名 拍卖 ,主键为auction_id

表名 * auction_param * ,主键为auction_param_id

AUCTIO_PARAM用于存储Start_DateEnd_Date等参数的详细信息。

auction_param_id | auction_param_desc 

1                | start date
2                | end_date 

表名 auction_param_values

它存储与Auction相关的参数的实际值。

表格如下: -

auction_id | auction_param_id | auction_param value | 

   1       |      2           |      2011-01-15     | 

实体类将如何查找auction_param_values?是否有任何关于我们如何设计的指针 支持JPA的模式(我们使用Eclipselink作为提供者)。

如果需要,我可以提供更多详细信息。

1 个答案:

答案 0 :(得分:2)

不知道我是否理解正确但这可能是你需要的:

@Entity
public class Auction {

    @Id
    private Integer id;

    @OneToMany(mappedBy="pk.auction")
    @MapKey(name="pk.auctionParam")
    private Map<AuctionParam, AuctionParamValue> values;

}

@Entity
public class AuctionParam {

    @Id
    private Integer id;

    private String description;

}

@Entity
public class AuctionParamValue {

    @EmbeddedId
    private AuctionParamValuePK pk;

    private String value;

}

@Embeddable
public class AuctionParamValuePK {

    @ManyToOne
    @JoinColumn(name="auction_id")
    private Auction auction;

    @ManyToOne
    @JoinColumn(name="auctionparam_id")
    private AuctionParam auctionParam;

}