Code Bye

关于使用hibernate操作mysql的一个小问题

使用hibernate来操作mysql创建一个表,本人想让表其中一列的内容不可以重复,在field使用@column(unique=true)后建表,发现没有效果,这一列的属性值还是可以重复,问一下怎么样才能让该列的值不重复呢?该列放的是String类型 。
解决方案

40

引用 8 楼 yy7075 的回复:
Quote: 引用 7 楼 yupeigu 的回复:
Quote: 引用 6 楼 yy7075 的回复:
Quote: 引用 1 楼 yupeigu 的回复:

直接在表上建个unique索引,相似于:
create unique index idx_tab_unique_s on 你的表(列名称)

在什么地方写呢?或说是怎么写?用HQL直接写吗?

直接在mysql的数据库里执行这个语句就可以:
create unique index idx_tab_unique_s on 你的表(列名称)
要把你的 表名称和列名称,替换掉上面的语句里的

本人的意思是可不可以在hibernate中使用呢?

关键是没学过hibernate不懂呀。
本人在网上查了一下:
将会发现Hibernate不会为我们创建任何自定义的索引(不包括主键跟外键索引),不论你使用xml方式或annotation进行声明配置
这个问题在Hibernate的JIRA多次出现,甚至有人专门为此发布了打了补丁的hibernate.jar
这个所谓的bug,在目前已发布的hibernate的版本中,一直都没有解决,或说不予理睬(Gavin King个人认为这个不是bug)


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于使用hibernate操作mysql的一个小问题