<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>什么是唯一的键做什么,它将如何工作作为一个字符串?
发布于 2020-02-13 10:05:29
根据JBoss文档,
唯一键属性可用于在单个唯一键约束中对列进行分组。该属性覆盖任何生成的唯一键约束的名称。
当您希望多个列的值作为一个整体是唯一的时,唯一键的典型用例就是。
例如:
class Department {...}
class Employee {
Integer employeeId;
Department department;
}因此,为了确保具有相同employeeId和部门的2个Employee对象不持久化,我们可以在2列EMP_ID和DEPT_ID上使用具有相同值EmpIdDept的惟一键属性来对它们作为一个整体强制执行唯一性约束。
<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 )只是多列唯一约束的名称。
还请检查此回答和这一个 (使用@UniqueConstraint实现相同的功能)
注意:要使用单列唯一约束,需要使用unique="true“
https://stackoverflow.com/questions/60201674
复制相似问题