首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在hibernate中定义唯一的键?

如何在hibernate中定义唯一的键?
EN

Stack Overflow用户
提问于 2020-02-13 06:28:06
回答 1查看 313关注 0票数 0
代码语言:javascript
复制
<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>

什么是唯一的键做什么,它将如何工作作为一个字符串?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-13 10:05:29

根据JBoss文档

唯一键属性可用于在单个唯一键约束中对列进行分组。该属性覆盖任何生成的唯一键约束的名称。

当您希望多个列的值作为一个整体是唯一的时,唯一键的典型用例就是。

例如:

代码语言:javascript
复制
class Department {...}

class Employee {
  Integer employeeId;
  Department department;
}

因此,为了确保具有相同employeeId和部门的2个Employee对象不持久化,我们可以在2列EMP_ID和DEPT_ID上使用具有相同值EmpIdDept惟一键属性来对它们作为一个整体强制执行唯一性约束。

代码语言:javascript
复制
<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“

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60201674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档