Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate .save()未保存列表中给出的所有详细信息_Hibernate_Jpa_Spring Data Jpa - Fatal编程技术网

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

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

我有一个大小为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);
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,问题是由于重复。