gpt4 book ai didi

java - 如何通过注释映射分离的 Collection(List, Set) 或 Map with Hibernate

转载 作者:行者123 更新时间:2023-11-30 10:38:10 25 4
gpt4 key购买 nike

我知道,有一种方法可以通过 XML 映射 Map:

 <set name="images"
table="ITEM_IMAGE"
order-by="IMAGENAME asc">
<key column="ITEM_ID"/>
<composite-element class="Image">
<property name="name" column="IMAGENAME" not-null="true"/>
<property name="filename" column="FILENAME" not-null="true"/>
<property name="sizeX" column="SIZEX" not-null="true"/>
<property name="sizeY" column="SIZEY" not-null="true"/>
</composite-element>
</set>

有没有办法通过注释映射做同样的事情,以及如何将它持久化到单独的表中?

太好了!

最佳答案

对于复合值或者基本类型应该是差不多的,首先你需要告诉hibernate我们正在映射到一个集合然后指定应包含您的 map 的表的名称以及与当前实体的连接列,然后指定键。

         @Entity
public class Item {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "Item_ID")
private Long itemId;

@ElementCollection
@CollectionTable(name="ITEM_IMAGE", joinColumns=@JoinColumn(name="ITEM_ID"))
@MapKeyColumn(name="ITEM_ID")
private Map<String, Image> contacts = new HashMap<String, Image>();
}

@Embeddable
public class Image {
//Specify your composite attributes with the column name for each
}

希望我没有漏掉任何东西

关于java - 如何通过注释映射分离的 Collection(List, Set) 或 Map with Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39846577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com