如何能够实现,hibernate 配置文件中的主键,默认保存的时候是自动增长的,如果赋值,则保存的时候为所赋的值?如何配置和mysql数据库中的主键如何定义?这里如何配置
<id name="id" type="java.lang.Integer">
            <column name="ID" />
            <generator class="assigned"></generator>
        </id>mysql中对应的主键如何设置?系统中如何调用保存方法请教各位大虾了hibernate

解决方案 »

  1.   

    把 class="assigned"改成class=“native”就是主键自动自动增长 mysql id设置成auto_increment就ok了!
      

  2.   

    不太好使呢,hibernate发出的sql语句中怎么不包含id字段嘞
      

  3.   

    配置文件:
           <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。插入数据的时候就不再插入主键,而由数据库自己负责。
      

  4.   

    感觉挺别扭的,为什么要“默认保存的时候是自动增长的,如果赋值,则保存的时候为所赋的值”?如果在mysql设置auto_increment,那你每次插入这个列都会自增的。
    除非不使用auto_increment,你自己用别的方法生成id,比如UUID,那你就可以手动去控制了。
      

  5.   


    你都告诉Hibernate了,由数据库去自增,还要个屁ID字段,它没你那么傻。
      

  6.   


    得支持手动ID赋值啊,不发出ID,怎么支持手动ID赋值啊我的意思是如果系统没有指定ID字段,或者ID地段为空,则按照mysql的自增,实现插入,如果指定了ID字段的值,则连通ID一起插入
      

  7.   

    按你需求,数据库已经有了一个id为5的记录了,你又手动插入一个id为5的数据,报错怎么办?
      

  8.   

    配置文件设置:
    <class name="引用" table="对应表名">      
         <id name="id" type="java.lang.Integer">
                <column name="ID" />
                <generator class="native"></generator>
         </id>
    </class>MySQL中id定义成自动增长
    如:
    create table my_table(
        user_id int identity
    );
      

  9.   

    如果mysql中id已经设置为自动增长了,再手动赋值给id是会报错的,要么手动赋值,要么自动增长,对于主键ID只能二选一,如果需要楼主那么需求的话,不妨在在设计表时多添加一个字段,
    --表--
    id(主键,自增),idCopy(类型和主键一样),其他字段   
    1                 1                  
    2                 2                  如果需要自动赋值的时候就让idCopy的取值和id一样,最麻烦不过在添加一条记录后再发送一条update语句
    如果需要手动赋值的时候,主键照样自动增长,ipCopy随你怎么赋值
    如果如果表已经设计好了,不能改了,又希望实现这样的需求,同求大神指点~~
      

  10.   

    可能自增,可能手动复制,程序没你那么聪明。而且,你手动赋值的id有可能因为存在相同的id,而报错。做为主键,没什么业务含义,没必要设计这么复杂。