读书人

小弟我用for循环存数据如何hibernate包

发布时间: 2013-09-28 10:01:20 作者: rapoo

我用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++) {
Users users = new Users();
users.setUserId(UUID.randomUUID().toString());
users.setUserName("123");
users.setPassWord("ttt");
userServiceI.saveUser(users);
}

[解决办法]
把userid打出来看看,检查下表结构主键的设计。
[解决办法]
id如果设置为主键,那就肯定会报错,主键是唯一的。这个循环一出来就违背了主键的唯一性。
[解决办法]
你的主键是id还是uuid 如果是id的话会报错,是uuid的话也会报错,如果主键是id请把id设置为自主增长,或者赋值的时候id要赋值也就是user.serUserId(i); 要保证id不能重复,如果主键是uuid的话,你要保证随机生成的uuid不能有重复的数值。

读书人网 >J2EE开发

热点推荐