使用hibernate持久化/更新数据集合到数据库中

时间:2016-04-25 05:59:12

标签: java hibernate jpa

我是Hibernate框架的新手,我很好奇持久化和更新工作的方式。

目前在我的项目中,当我想要将数据集合持久化或更新到数据库中时,我是通过循环方法逐个完成的。例如,

    public persistData(){
       List<Person> personList = new ArrayList<>();
       for(Person person : personList){
            session.persist(person);
       }
    }

是否可以,例如,

    session.persist(personList);

或者无论如何我还可以一次性地持久保存/更新数据集合而无需循环播放?

Editted: 我找到了Hibernate Batch Processing How to insert multiple rows into database using hibernate?Best way to insert a good amount of records in hibernate

我正在使用hibernate为持久化/更新/删除数据开发泛型类,我应该提供方法

    public void (List<T> addedItemList)

    public void (T addedItem)

根据我的理解,批量持续应该通过大量交易完成吗?如果某些时候只有1个或2个对象需要保留,那么批处理仍然合适吗?

1 个答案:

答案 0 :(得分:0)

这里的要点是开始事务,持久化所有,然后提交。尝试不使用@Transaction,因为您正在使用代码。

                EntityManager em = entityManagerProvider.get();
//                em.clear();//remove this if caching is necessary
                em.getTransaction().begin();
                for(buildings b:buildingsArray) {
                     em.persist(b);
                }
                em.getTransaction().commit();