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