我有一个部门和员工表。我需要部门名称和部门中的员工是唯一的,以便给予具有相同雇员组的部门的新条目,它应该抛出唯一的约束违规错误。
我不知道如何在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;
}
答案 0 :(得分:-1)
您可以使用:
@Column(unique= true)
private String name;