我有两张桌子:
@Entity
public class A implements Serializable {
@Column
@NotNull
@Size(min = 1)
@Pattern(regexp = "[A-Za-z]{1}[A-Za-z0-9_]*")
private String token;
@ManyToOne(optional = true)
@JoinColumn(name = "b_id", referencedColumnName = "id")
private B b;
...
}
@Entity
public class B implements Serializable {
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "b")
private List<A> a;
...
}
实体A中的Token
应该是B 中的唯一。
例如,B1中有 Token1 , B2 中有 Token1 ,但可以有
是B1内的第二个 Token1 。
我正在使用JPA和Hibernate。
我如何实现这一目标?
答案 0 :(得分:0)
通过在外键和令牌的组合上创建UniqueConstraint
。
在实体A
上,类似于以下内容:
@Table(
name="a",
uniqueConstraints={
@UniqueConstraint(columnNames={"b_id", "token"})
}
)
@Entity
public class A implements Serializable {
// ...
}