Hibernate - Spring Data JPA One to Many跨表的唯一约束

时间:2018-02-14 17:39:09

标签: postgresql hibernate spring-data

我有一个部门和员工表。我需要部门名称和部门中的员工是唯一的,以便给予具有相同雇员组的部门的新条目,它应该抛出唯一的约束违规错误。

我不知道如何在hibernate中解决这个问题。

我需要在多个表中使用唯一约束。

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;

@Entity
@Table(
        name="dept"
)
public class DeptEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    @Column(nullable = false)
    private String name;

    @OneToMany(mappedBy = "dep", cascade = CascadeType.ALL, orphanRemoval = true)
    private List<Employee> attributes = new ArrayList<>();

  }

导入javax.persistence。*;

  @Entity
  @Table(name="emp"
  )
  public class Employee {


      @Id
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      private int id;

      private String name;


      @ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)
      @JoinColumn(name = "dept_id", referencedColumnName = "id", nullable = false)
      private DeptEntity dep;

  }

1 个答案:

答案 0 :(得分:-1)

您可以使用:

@Column(unique= true)
private String name;