当前位置: 代码迷 >> J2EE >> hibernate id有关问题
  详细解决方案

hibernate id有关问题

热度:9737   发布时间:2013-02-25 21:39:42.0
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
引用:
把 class="assigned"改成class=“native”就是主键自动自动增长 mysql id设置成auto_increment就ok了!把 class="assigned"改成class=“native”就是主键自动自动增长 mysql id设置成auto_increment就ok了!
引用:
把 class="assigned"改成class=“native”就是主键自动自动增长 mysql id设置成auto_increment就ok了!
引用:
发出的sql中没有id字段


你都告诉Hibernate了,由数据库去自增,还要个屁ID字段,它没你那么傻。
引用:
把 class="assigned"改成class=“native”就是主键自动自动增长 mysql id设置成auto_increment就ok了!
感觉挺别扭的,为什么要“默认保存的时候是自动增长的,如果赋值,则保存的时候为所赋的值”?如果在mysql设置auto_increment,那你每次插入这个列都会自增的。
除非不使用auto_increment,你自己用别的方法生成id,比如UUID,那你就可以手动去控制了。配置文件:
       <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。插入数据的时候就不再插入主键,而由数据库自己负责。
引用:
把 class="assigned"改成class=“native”就是主键自动自动增长 mysql id设置成auto_increment就ok了!
 正确按你需求,数据库已经有了一个id为5的记录了,你又手动插入一个id为5的数据,报错怎么办?
引用:
把 class="assigned"改成class=“native”就是主键自动自动增长 mysql id设置成auto_increment就ok了!

+1
  相关解决方案