Как сделать несколько столбец UniqueConstraint в hbm?

Работа над некоторым наследием в спящем режиме код.

Как я делаю следующее с hbm.xml (будьте в спящем режиме, отображая файл) вместо с аннотациями?

@Table(name="users", uniqueConstraints = {
    @UniqueConstraint(columnNames={"username", "client"}),
    @UniqueConstraint(columnNames={"email", "client"})
})
public class User implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    private int id;
    private String username;
    private String email;
    private Client client;
}
25
задан Gabriel 29 April 2010 в 22:02
поделиться

1 ответ

Используйте тег properties :

...
<properties name="uk1" unique="true">
        <property name="username" .../>
        <many-to-one name="client" .../>
</properties>

<properties name="uk2" unique="true">
        <property name="email" .../>
        <many-to-one name="client" update="false" insert="false" .../>
</properties>
...

Отрывок из документации:

Элемент позволяет определять именованные, логическая группировка свойств класса. Наиболее важное использование конструкции состоит в том, что она позволяет комбинации свойств быть целью ссылки на свойство. Это также удобный способ определить ограничение уникальности нескольких столбцов .

Все доступные параметры описаны в документации Hibernate .

21
ответ дан 28 November 2019 в 21:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: