gpt4 book ai didi

java - JPA持久性问题

转载 作者:搜寻专家 更新时间:2023-10-30 20:33:45 25 4
gpt4 key购买 nike

我在 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 列表中的价格值时,我希望它在实体管理器关闭时对数据库产生影响。我猜是因为它处于一种持久的领域。如果我在这里做的一切都正确,我的类(class)结构可能还有其他问题。

你能帮帮我吗?我做错了什么?谢谢...

最佳答案

在提交之前添加这一行。如果您正在 EntityManager 中寻找可以保存或更新集合的东西,答案是否定的。你将不得不循环。如果记录存在,EntityManager.merge() API 将更新,否则将插入新记录。

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

希望它能奏效。

关于java - JPA持久性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53296973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com