我有一个大小为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.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);
这里它只在db中保存了17行,而不是全部20行。
答案 0 :(得分:0)
这不是灵魂,而是一种进一步调试的方法
这是列表保存实现从内部看的方式。
@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;
}
你注意到它的返回列表。因此,还会返回所有持久数据。
您可以交叉检查缺少哪些实体。