小弟我用for循环存数据如何hibernate包数据重复异常


我用for循环存数据怎么hibernate包数据重复错误
报错如下:

a different object with the same identifier value was already associated with the session: [com.erp.auth.model.Users# 234123]


我查了下是hibernate的数据重复错误。我在存的时候使用的是save而不是saveOrUpdate啊,为什么回报这个错误




我的action:


    for (int i = 0; i < 10; i++) {<br />

        Users users = new Users();<br />

        users.setUserId(UUID.randomUUID().toString());<br />

        users.setUserName("123");<br />

        users.setPassWord("ttt");<br />

        userServiceI.saveUser(users);<br />

    }<br />


java J2EE 程序开发

白庭院灵梦 9 years, 11 months ago

你的主键是id还是uuid 如果是id的话会报错,是uuid的话也会报错,如果主键是id请把id设置为自主增长,或者赋值的时候id要赋值也就是user.serUserId(i); 要保证id不能重复,如果主键是uuid的话,你要保证随机生成的uuid不能有重复的数值。

363545撒 answered 11 years, 8 months ago

id如果设置为主键,那就肯定会报错,主键是唯一的。这个循环一出来就违背了主键的唯一性。

风吹鸡鸡摇 answered 11 years, 8 months ago

把userid打出来看看,检查下表结构主键的设计。

水果滨治武士G answered 11 years, 8 months ago

Your Answer