如何使用Hibernate和MySQL插入逗号分隔值?

时间:2015-08-05 19:02:36

标签: java mysql hibernate

如何在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作为数据库后端。

1 个答案:

答案 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