Hibernate .save()未保存列表中给出的所有详细信息
我有一个大小为20的列表,我正试图使用.save()JPA将其保存到数据库中。 但只保存了17行。 保存后,我正在检查数据库,只有17行得到反映 可能是什么问题 这是我的代码片段Hibernate .save()未保存列表中给出的所有详细信息,hibernate,jpa,spring-data-jpa,Hibernate,Jpa,Spring Data Jpa,我有一个大小为20的列表,我正试图使用.save()JPA将其保存到数据库中。 但只保存了17行。 保存后,我正在检查数据库,只有17行得到反映 可能是什么问题 这是我的代码片段 List<MyBean> g=new ArrayList<>(); MyBean.add(mybean object); MyBean.add(mybean object); MyBean.add(mybean object); MyBean.add(mybean object); MyBean
List<MyBean> g=new ArrayList<>();
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
MyBean.add(mybean object);
repository.save(MyBean);
List g=new ArrayList();
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
添加(MyBean对象);
save(MyBean);
在这里,它只在db中保存17行,而不是全部20行。这不是解决方案,而是进一步调试的一种方法 这就是列表保存实现从内部的外观
@Transactional
public <S extends T> List<S> save(Iterable<S> entities) {
List<S> result = new ArrayList<S>();
if (entities == null) {
return result;
}
for (S entity : entities) {
result.add(save(entity));
}
return result;
}
@Transactional
公共列表保存(Iterable实体){
列表结果=新建ArrayList();
如果(实体==null){
返回结果;
}
对于(S实体:实体){
结果.添加(保存(实体));
}
返回结果;
}
你会注意到它的返回列表。因此,也会返回所有持久化数据
您可以交叉检查缺少哪些实体。可能是由于duplicacyI同意@Sudhir,为了进一步调查,您可以查看您的数据库日志(如果删除了其中的行,则肯定是由于重复)。您是正确的@SudhirOjha,问题是由于重复。