此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【iamding】截止到2008-07-30 08:38:41的历史汇总数据(不包括此帖):
发帖的总数量:75                       发帖的总分数:1370                     每贴平均分数:18                       
回帖的总数量:58                       得分贴总数量:12                       回帖的得分率:20%                      
结贴的总数量:30                       结贴的总分数:570                      
无满意结贴数:1                        无满意结贴分:20                       
未结的帖子数:45                       未结的总分数:800                      
结贴的百分比:40.00 %               结分的百分比:41.61 %                  
无满意结贴率:3.33  %               无满意结分率:3.51  %                  
楼主该结一些帖子了

取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=iamding

解决方案 »

  1.   

    hibernate只是调用了数据库的底层的sql变量吧
    ,比如sqlserver的tran-sql中就有这样的变量insert into aaaa(a)values(2)
    select @@identity这样插入了之后就return 自动增长的id
      

  2.   

    用数据库管理主键,不要用hibernate管理:
    xml中
    <id name="id" type="java.lang.Integer">
        <column name="id" />
        <generator class="native" />
    </id>
    用“native”,这样hibernate将主键的取值决定权交给数据库控制,从而避免数据错误。
      

  3.   

    咱对hibernate研究不是很多啊.不过我觉得楼上的想法应该是正确的吧.
      

  4.   

    它是在insert之前先到数据库里查询最大的ID然后再INSERT操作,
    如果你觉的这种产生的可能出问题的话,建议ID改称varchar(32)的,然后映射文件里ID生成方式改称uuid.hex这样重复的纪律几乎为零.它自动生成的ID是32位的串