在 JPA 中以实体为键映射 Map
Posted
技术标签:
【中文标题】在 JPA 中以实体为键映射 Map【英文标题】:Mapping Map with an Entity as a key in JPA 【发布时间】:2012-07-04 08:15:55 【问题描述】:是否可以映射:
@ManyToMany(cascade = Array(CascadeType.ALL), fetch = FetchType.EAGER)
Map<Entity, Double> quantities;
代替:
Map<Double, Entity>
?
如果不是,您如何映射例如购物篮中的商品数量(没有专用表)?
提前致谢, 埃塔姆。
【问题讨论】:
【参考方案1】:是的,它可以在没有其他实体的情况下进行映射,例如,参见Hibernate: mapping many-to-many to Map。
还要注意,无论如何都会使用专用表,它可以映射为实体,也可以不映射。
【讨论】:
【参考方案2】:您可以使用@ElementCollection 和@MapKeyJoinColumn,
见 http://en.wikibooks.org/wiki/Java_Persistence/Relationships#Map_Key_Columns_.28JPA_2.0.29
但这是一种不寻常的模型,您最好创建一个实体来映射到连接表。
【讨论】:
以上是关于在 JPA 中以实体为键映射 Map的主要内容,如果未能解决你的问题,请参考以下文章