0
@Entity
class Employee {
  @Column
  private UUID id;

  @Column
  private String firstName;

  @Column
  private String lastName;  

}

@Entity
class Department {
  @Column
  private UUID id;

  @Column
  private List<Employee> employees;  
}
  • DepartmentEmployeeのような従業員と部門のOneToMany関係 を持つ別のテーブルが必要です

--------------------------
departmentId | EmployeeId
--------------------------
      1      |     1     |
      1      |     2     |
      1      |     3     |
      2      |     5     |
--------------------------
  • uniqueConstraintオンDepartment.idとオフがあることを確認したいEmployee.id

でこれを達成するにはどうすればよいJPAですか?

4

2 に答える 2

0

注釈付きで@OneToManyonを利用してください。employees@JoinTable

何かのようなもの、

@OneToMany
@JoinTable(name="DEPT_EMP", 
          joinColumns=@JoinColumn(name="departmentId"),
          inverseJoinColumns=@JoinColumn(name="EmployeeId"))
private List<Employee> employees;

ここで一意の制約について心配する必要がないことを願っています。デフォルトで制約が作成されます。ただし、特定の名前を指定したい場合はuniqueConstraints=@UniqueConstraint、`JoinTableのプロパティを利用できます。

于 2013-03-06T22:11:14.360 に答える
0

を使用@JoinTableuniqueConstraintsます:

@Entity
class Employee {
    @Column
    private UUID id;

    @Column
    private String firstName;

    @Column
    private String lastName;
}

@Entity
class Department {

    @OneToMany
    @JoinTable(joinColumn = @JoinColumn(name = "employee_id"), 
        inverseJoinColumn(name = "department_id"),
        uniqueConstraints=@UniqueConstraint(columnNames={"employee_id", "department_id"}))
    private List<Employee> employees;  
}

警告:上記は擬似コードのみです。

于 2013-03-06T22:11:52.397 に答える