hibernate推荐大家使用一个主键,而且最好是与业务无关,只是一个逻辑主键。但是这样做就会有这样一个问题:
假如有这样一个表,有三个字段,id,userid,username.其中id为主键,与业务无关,为一个自增字段。如果我插入2条重复的记录,比如(0001,张三),(0001,张三),都可以插入数据库了。请问各位高手怎样解决这个问题啊,保证不重复插入数据。小弟先谢过了
假如有这样一个表,有三个字段,id,userid,username.其中id为主键,与业务无关,为一个自增字段。如果我插入2条重复的记录,比如(0001,张三),(0001,张三),都可以插入数据库了。请问各位高手怎样解决这个问题啊,保证不重复插入数据。小弟先谢过了
不可能,如果你在建表的时候设置主键,一定会存在主键约束。
Hibernate会尊重这个约束的。你的ID,犹如0001型,一定是个varchar型或者char型吧。你如果想自己控制id,就采用assigned生成方式;
如果你在数据库里设置了主键的生成方式,就采用native;
也可以自己写个主键生成类!
unique在哪里配置呀,望赐教
例如: <property name="usernam" column="USERNAME" type="java.lang.String" unique="true" not-null="true" length="50"/>