我在用JPA记录数据库时遇到问题。
我的设置是为jpa设置的,我使用hibernate作为服务。
我有以下代码。

EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
List<Beer> beiren = FindBeers();

List<Beer> aa = beiren.stream().map(x-> {
    x.setPrice(x.getPrice()*1.02F);
    return x;
}).collect(Collectors.toList());

Collections.copy(beiren,aa);
beiren.stream().forEach(System.out::println);
tx.commit();
em.close();
emf.close();

当我更改beiren list中的价格值时,我希望它在实体管理器关闭时在数据库中起作用。因为它是在一个持久的领域,我想。
如果我在这里做的每一件事都正确,我的课堂结构可能会有其他问题。
你能帮帮我吗?我做错什么了?
谢谢您。。。

最佳答案

在提交之前添加此行。如果您正在EntityManager中查找将保存或更新集合的内容,答案是否。您必须循环。如果记录已存在,否则将插入一个新记录。

aa.stream().foreach(em::merge);

希望能成功。

10-07 12:15