.save()未保存列表中给出的所有详细信息

时间:2018-05-17 07:38:31

标签: 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.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行。

1 个答案:

答案 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;
}

你注意到它的返回列表。因此,还会返回所有持久数据。

您可以交叉检查缺少哪些实体。