首页 > 解决方案 > 实体管理器将更改保存在数据库中

问题描述

我有一个问题,如何保存或更新 Java 中的更改最终将其导入 SQL。我的代码看起来像这样,但它们不仅仅在 Catch 中保存在 DB 中:

private EntityManager em;
.
.
.
public boolean reduzieren (int id, int weniger){
Produkt produkt = em.find(Produkt.class,id);
int reduziert = produkt.getPreis - weniger;
produkt.setPreis(reduziert);
return true;

我应该写 em.merge(produkt); 将其保存在数据库中。我不知道。

标签: javasqldatabase

解决方案


当事务结束时,Hibernate 将实体保存到数据库。所以你应该将你的代码包装在事务块中,它应该开始工作。

尝试这个。

EntityTransaction transaction = em.getTransaction();
transaction.begin();

Produkt produkt = em.find(Produkt.class,id);
int reduziert = produkt.getPreis - weniger;
produkt.setPreis(reduziert);

transaction.commit();

推荐阅读