Hibernate 在 类 中存储字段
Hibernate Storing Fields inside Classes
我有两个 class 和两个单独的 table,"Employee" 和 "Company"。我想在公司 class 中保留一份员工名单。这很容易,但我不知道如何在数据库端表示这个列表。
Class 'Company':
@Entity
@Table(name = "company")
public class Company {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "name")
private String name;
private List<Employee> employeeList;
}
Class 'Employee':
@Entity
@Table(name = "employee")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "name")
private String name;
@Column(name = "age")
private Integer age;
如果没有休眠,我会选择创建另一个 table 的设计,其中包含两列 'employeeId' 和 'companyId',并尝试让所有 'employeeIds' 的员工与 'companyId'。我不知道是否可以在休眠状态下做同样的事情。如果是这样怎么办?如果没有,您的解决方案是什么?
我认为您需要在 Company 和 Employees 之间实现 oneToMany 关系。 Hibernate @OneToMany
注解可用于相同的 .
Here 是展示如何在 Hibernate 中执行此操作的示例
简短的回答是,您可以将 Hibernate 配置为生成一个 30 table 来存储您希望的关联。
您可以使用 @JoinTable 注释来实现此目的。按照您的示例,它将类似于:
@Entity
@Table(name = "company")
public class Company {
...
@OneToMany// or @ManyToMany
@JoinTable(name = "table_name",
joinColumns = @JoinColumn(name="employeeId", referencedColumnName="id"),
inverseJoinColumns = @JoinColumn(name="companyId", referencedColumnName="id"))
private List<Employee> employeeList;
现在 Hibernate 将创建一个名为 table_name 的 table,其中包含您想要的两列以及 [=24= 的相应外键约束]s 员工 和 公司。
您也可以使用 @ForeignKey 注释指定外键名称。
我有两个 class 和两个单独的 table,"Employee" 和 "Company"。我想在公司 class 中保留一份员工名单。这很容易,但我不知道如何在数据库端表示这个列表。
Class 'Company':
@Entity
@Table(name = "company")
public class Company {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "name")
private String name;
private List<Employee> employeeList;
}
Class 'Employee':
@Entity
@Table(name = "employee")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "name")
private String name;
@Column(name = "age")
private Integer age;
如果没有休眠,我会选择创建另一个 table 的设计,其中包含两列 'employeeId' 和 'companyId',并尝试让所有 'employeeIds' 的员工与 'companyId'。我不知道是否可以在休眠状态下做同样的事情。如果是这样怎么办?如果没有,您的解决方案是什么?
我认为您需要在 Company 和 Employees 之间实现 oneToMany 关系。 Hibernate @OneToMany
注解可用于相同的 .
Here 是展示如何在 Hibernate 中执行此操作的示例
简短的回答是,您可以将 Hibernate 配置为生成一个 30 table 来存储您希望的关联。 您可以使用 @JoinTable 注释来实现此目的。按照您的示例,它将类似于:
@Entity
@Table(name = "company")
public class Company {
...
@OneToMany// or @ManyToMany
@JoinTable(name = "table_name",
joinColumns = @JoinColumn(name="employeeId", referencedColumnName="id"),
inverseJoinColumns = @JoinColumn(name="companyId", referencedColumnName="id"))
private List<Employee> employeeList;
现在 Hibernate 将创建一个名为 table_name 的 table,其中包含您想要的两列以及 [=24= 的相应外键约束]s 员工 和 公司。 您也可以使用 @ForeignKey 注释指定外键名称。