有一个表role(name varchar,text varchar) pk:name
在hibernate中的映射文件:
<id name="name" type="java.lang.String">
<column name="name" length="45" />
<generator class="uuid.hex" />
</id>
我想添加指定的数据:
Role r=new Role("管理员","对职员的CRUD");
getHibernateTemplate().save(role);
添加是成功了,但是在数据库中r变成了:
r 8a16f84b3e306959013e30695a7b0001 对职员的CRUD
求大神指点,如果想要添加Role r=new Role("管理员","对职员的CRUD");这条数据能实现么?如果不能,还有其它方法么?用的mysql数据库
------解决方案--------------------
少年。你的hibernate的配置文件中写的是主键利用uuid算法自增。所以无论你在主键的位置插入的是什么最后都是uuid算法生成的字符串代替了你插入的东西。
你如果写
Role r=new Role(null,"对职员的CRUD");
getHibernateTemplate().save(role);
最后的结果还是生成一个uuid的字符串。
除非你把<generator class="uuid.hex" /> 去掉。或者把name字段变成非主键。