Hibernate注释-不区分大小写的UniqueConstraint

我有一个带有以下注释的实体:

@Entity

@Table(uniqueConstraints={@UniqueConstraint(columnNames={"name"})})

public class Component extends Model {

...

}

是否可以使UniqueConstraint大小写不敏感?我们正在使用PostgreSQL。

回答:

使用PostgreSQL,您确实可以执行以下操作来实现您的要求:

CREATE UNIQUE INDEX My_Index on Component (lower(name));

但是据我所知,没有办法使用注释来实现此目的。

如果您想依靠Hibernate的hbm2ddl工具来生成模式并且仍然创建该索引,那么我唯一想到的选择就是

。来自鹿特丹JBug和Hibernate的import.sql博客文章:

import.sql:在单元测试中轻松导入数据

Hibernate具有一个简洁的小功能,该功能严重不足文档,并且未知。您可以在SessionFactory创建数据库模式后立即在创建过程中执行SQL脚本,以将数据导入到新数据库中。您只需要import.sql在您的类路径根目录中添加一个名为的文件,然后将create

设置create-drop为您的 hibernate.hbm2ddl.auto属性。

现在,我已经开始查询一章,将其用于“运行中的Hibernate Search”。它使用一组用于单元测试的新数据初始化数据库。JBoss

Seam在各种示例中也经常使用它。 import.sql是一个非常简单的功能,但有时非常有用。请记住,SQL可能取决于您的数据库(可移植性!)。

#import.sql file

delete from PRODUCTS

insert into PRODUCTS (PROD_ID, ASIN, TITLE, PRICE, IMAGE_URL,

DESCRIPTION) values (‘1’, ‘630522577X’, ‘My Fair Lady’, 19.98,

‘630522577X.jpg’, ‘My Fair blah blah…’);

insert into PRODUCTS (PROD_ID, ASIN, TITLE, PRICE, IMAGE_URL,

DESCRIPTION) values (‘2’, ‘B00003CXCD’, ‘Roman Holiday ‘, 12.98,

‘B00003CXCD.jpg’, ‘We could argue that blah blah’);

有关此功能的更多信息,请查看Eyal的博客(死链接的更新位置),他为此写了一篇很好的文章。请记住,如果要添加其他数据库对象(索引,表等),还可以使用

辅助数据库对象 功能。

以上是 Hibernate注释-不区分大小写的UniqueConstraint 的全部内容, 来源链接: utcz.com/qa/399424.html

回到顶部