例如:
数据库表顺序是ID,Username,Password,Age,ID是主键使用hibernate时,打印出来的都是这种情况Hibernate: insert into User (password, age, username,ID) values (?, ?, ?,?)第一列的都会跑到最后一列去,最后插入数据也不成功,不知道是什么原因

解决方案 »

  1.   

    你这里 into User (password, age, username,ID) values (?, ?, ?,?)列的顺序是你自己定义的啊~~~ password  对上第一个问好   age 是最后一个 以此类推  ID 就是最后一个 
    看你了下表顺序是ID,Username,Password,Age
    你valuse如果给全了 (password, age, username,ID) 可以省略
    into User  values (?, ?, ?,?)
      

  2.   

    这是映射代码:
    <hibernate-mapping>

    <class name="com.qzj.model.Person" table="User">

    <id name="id" column="ID" type="integer">
    </id>
    <property name="username" column="username" type="string"></property>
    <property name="password" column="password" type="string"></property>
    <property name="age" column="age" type="integer"></property>

    </class>


    </hibernate-mapping>
      

  3.   

    数据库中的表顺序是ID,username,password,age,ID是主键打印出来的信息是:Hibernate: insert into User (username, password, age, ID) values (?, ?, ?, ?)
      

  4.   


    在映射代码里面我要是把
    <id name="id" column="ID" type="integer">
     </id>
    改成
    <id name="id" column="ID" type="integer">
        <generator class="increment"></generator>
     </id>打印出来的信息就只有:
    Hibernate:Select MAX(ID) from UserInsert语句就没有了。
      

  5.   

     insert into User (username, password, age, ID) values ('username', 'password', age, int)
    你先确认下 传入的参数有没有跟前面定义的列保持一致
      

  6.   

     <generator class="increment"></generator>
     这个是自增  不需要你往ID里插入东西
      

  7.   

    真的是郁闷啊,我把ID去掉了,然后就变成
    insert into User ( password, age, username) values (?, ?, ?)为什么第一个都会跑到后面去呢??想不通
      

  8.   

    也就是本来应该是这样的:
    insert into User (username, password, age) values (?, ?, ?)却变成了这样:
    insert into User (password, age, username) values (?, ?, ?)username本来应该是第一个位置的,却在最后去了
      

  9.   

    谁告诉你 hibernate 一定要按你数据库里面的列顺序来排序啊。。列的顺序只要和绑定数据的顺序一致就可以,如果你想知道 hibernate 怎么排序的,去看 hibernate 的源代码不是更好。
      

  10.   


    额,我一直以为Hibernate插入数据都是要按照顺序来的,原来不是,而是要看它的心情,
    领教了,谢谢大家