处理一些遗留的 hibernate 代码。
如何使用 hbm.xml( hibernate 映射文件)而不是注释来执行以下操作?
@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>
...
文档摘录:
The <properties> element allows the definition of a named, logical grouping of the properties of a class. The most important use of the construct is that it allows a combination of properties to be the target of a property-ref. It is also a convenient way to define a multi-column unique constraint.
Hibernate documentation 中描述了所有可用的选项.
关于hibernate - 如何在 hbm 中做多列 UniqueConstraint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2741088/