在休眠状态下定义唯一键,以及如何?

问题描述 投票:0回答:1
<many-to-one name="attachment" class="AttachmentEntity" lazy="false"
             fetch="select" cascade="delete">
    <column name="SPA_ATTACHMENT_ID" not-null="true" unique-key="IDX_AMT_COND_01"/>
</many-to-one>

Unique Key在做什么,以及如何作为字符串使用?

sql hibernate liquibase unique-constraint unique-key
1个回答
0
投票

根据JBoss documentation

唯一键属性可用于将一个列中的列分组,唯一键约束。该属性将覆盖任何名称生成的唯一键约束。

[的典型用例是,当您希望多个列的值整体上唯一时。

例如(也检查此answer和此answer on @UniqueConstraint annotation usage):

class Department {...} class Employee { Integer employeeId; Department department; }

因此,

以确保不保留具有相同的employeeId和部门

的2个Employee对象,我们可以在2个上使用具有相同值EmpIdDeptunique-key属性列EMP_ID和DEPT_ID以对它们整体施加唯一性约束:<property name="employeeId" column="EMP_ID" unique-key="EmpIdDept"/> <many-to-one name="department" column="DEPT_ID" class="Department" unique-key="EmpIdDept"/>
您指定为属性值的字符串,即

IDX_AMT_COND_01

只是多列唯一约束的名称。
注意:要使用单列唯一约束,您需要使用unique =“ true”
© www.soinside.com 2019 - 2024. All rights reserved.