如何在Hibernate中以逗号分隔格式存储整数类型列表?
例如 - 我有一个城市表,其中我有cityId和CityName。在另一个表格中,我有员工详细信息。员工可以使用多个城市进行标记。
我为员工城市映射创建了另一个表,我希望以逗号分隔格式存储城市。
Table- Employee
----------------------------
Employee_ID Employee_Name
1 Employee 1
2 Employee 2
Table -city
------------------------
City_ID City_Name
1 City_1
2 City_2
Table- Employee-City Mapping
-----------------------
Emp_ID City_id
1 1,2
2 1,2
如何在Hibernate中执行此类操作?请帮忙。我使用MySQL作为数据库后端。
答案 0 :(得分:1)
看起来您正试图代表一对多关系。
表示一对多关系的传统SQL方法是通过连接表中的多行。在您的情况下,联接表是 employee-city 表,其中包含每个城市多行的修改设计,而不是多值列:
Table- Employee-City Mapping
-----------------------
Emp_ID City_id
1 1
1 2
2 1
2 2
JPA(Hibernate支持)直接支持将这些关系映射到集合字段。您的员工类会有一个城市字段,其中列表< City> 使用 @OneToMany 进行注释。
@Entity
public class Employee {
@Id
@Column(name="Emp_ID")
private long id;
@OneToMany
@JoinColumn(name="Emp_ID", referencedColumnName="City_ID")
private List<City> cities;
// ... rest of the class: constructor, getters, setters
}
以下指南也可能有所帮助: https://en.wikibooks.org/wiki/Java_Persistence/OneToMany