Hibernate 在多个引用列上添加唯一约束

Hibernate 在多个引用列上添加唯一约束,hibernate,postgresql,jpa,unique-constraint,Hibernate,Postgresql,Jpa,Unique Constraint,您好我想在两个引用列上添加唯一约束: @Entity() @Table(uniqueConstraints = @UniqueConstraint(columnNames = { "ast", "tfs" })) public class N extends UUID { @ManyToOne(optional = false) @JoinColumn(name = "ast") private A ast; @ManyToOne(optional = false) @JoinColumn(

您好我想在两个引用列上添加唯一约束:

@Entity()
@Table(uniqueConstraints = @UniqueConstraint(columnNames = { "ast", "tfs" }))
public class N extends UUID {

@ManyToOne(optional = false)
@JoinColumn(name = "ast")
private A ast;

@ManyToOne(optional = false)
@JoinColumn(name = "tfs")
private T tfs;
类中的UUID是用于生成主ID的逻辑

Hibernate生成3个约束、PK和2个辅助键。。但我希望有4个限制。 有人有主意吗

编辑:

@实体
公共类A扩展UUID实现可序列化{
@OneToMany(mappedBy=“ast”)
私人名单nutz;

@实体
公共类T扩展UUID实现可序列化{
@OneToMany(mappedBy=“tfs”)
私人名单nutz;
如果我设置:

<property name="hibernate.hbm2ddl.auto" value="create-drop" />

而不是

<property name="hibernate.hbm2ddl.auto" value="update" />


Hibernate似乎只在创建整个数据库时创建Constant,而不是在创建表时创建Constant!令人困惑。

在您的情况下,我希望只有两个约束:PK约束和UniqueConstraint(在两个字段上)。Hibernate的约束是什么?您期望的约束是什么?那么我没有参考其他实体。目前有1 PrimaryKey(uuid)2 SecondaryKey(到ast和到tfs)约束。我期望1 PrimaryKey 2 SecondaryKey加1 NIQE(ast,tfs)约束。当然,我没有计算外键约束。您确定表中没有多个组合
{“ast”,“tfs”}
?这是一个错误,在4.2.1中修复,请参阅
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
<property name="hibernate.hbm2ddl.auto" value="update" />