Работа над некоторым наследием в спящем режиме код.
Как я делаю следующее с 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;
}
Используйте тег 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 .