hibernate id问题
如何能够实现,hibernate 配置文件中的主键,默认保存的时候是自动增长的,如果赋值,则保存的时候为所赋的值?
如何配置和mysql数据库中的主键如何定义?
这里如何配置
<id name="id" type="java.lang.Integer">
<column name="ID" />
<generator class="assigned"></generator>
</id>
mysql中对应的主键如何设置?
系统中如何调用保存方法
请教各位大虾了
hibernate
------解决方案--------------------把 class="assigned"改成class=“native”就是主键自动自动增长 mysql id设置成auto_increment就ok了!
------解决方案--------------------
+1
------解决方案--------------------
+1
------解决方案--------------------配置文件:
<id name="id" type="java.lang.Integer">
<column name="ID" />
<generator class="native"></generator>
</id>
MySQL中的建表语句:
identity是定义标识列,该字段应该是整型的
如:
create table my_table(
user_id int identity,
user_name char(8)
);
MySQL支持在建表的时候指定主键的自动生成策略。指定后就可以在使用hibernate的时候指定主键的生成策略为identity。插入数据的时候就不再插入主键,而由数据库自己负责。
------解决方案--------------------感觉挺别扭的,为什么要“默认保存的时候是自动增长的,如果赋值,则保存的时候为所赋的值”?如果在mysql设置auto_increment,那你每次插入这个列都会自增的。
除非不使用auto_increment,你自己用别的方法生成id,比如UUID,那你就可以手动去控制了。
------解决方案-------------------- 正确
------解决方案--------------------------解决方案--------------------
你都告诉Hibernate了,由数据库去自增,还要个屁ID字段,它没你那么傻。
------解决方案--------------------------解决方案--------------------按你需求,数据库已经有了一个id为5的记录了,你又手动插入一个id为5的数据,报错怎么办?
------解决方案--------------------