我有一种情况,我的数据库表如下所示,我想知道如何为这种类型的JPA映射 表,特别是对于没有主键ID
的auction_param_values表名: 拍卖 ,主键为auction_id
表名: * auction_param * ,主键为auction_param_id
表AUCTIO_PARAM
用于存储Start_Date
,End_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作为提供者)。
如果需要,我可以提供更多详细信息。
答案 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;
}