определение уникального ключа в спящем режиме и как? - PullRequest
0 голосов
/ 13 февраля 2020
<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>

Что делает уникальный ключ и как он будет работать как строка?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Это можно определить, пометив столбец @Column (unique = true).

0 голосов
/ 13 февраля 2020

Согласно документации JBoss ,

Атрибут уникального ключа можно использовать для группировки столбцов в одном ограничении уникального ключа. Атрибут переопределяет имя любого сгенерированного ограничения уникального ключа.

Типичный вариант использования для unique-key будет, когда вы хотите, чтобы значения нескольких столбцов в целом были уникальный.

Например:

class Department {...}

class Employee {
  Integer employeeId;
  Department department;
}

Итак, , чтобы гарантировать, что 2 объекта Employee с тот же employeeId и отдел не будут сохранены , мы можно использовать атрибут unique-key с тем же значением EmpIdDept для 2 столбцов EMP_ID и DEPT_ID to для применения ограничения уникальности для них в целом :

<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"

...