有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java实体管理器在数据库中保存更改

我有一个问题,如何保存或更新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);将其保存在DB中。我不知道


共 (1) 个答案

  1. # 1 楼答案

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

    试试这个

    EntityTransaction transaction = em.getTransaction();
    transaction.begin();
    
    Produkt produkt = em.find(Produkt.class,id);
    int reduziert = produkt.getPreis - weniger;
    produkt.setPreis(reduziert);
    
    transaction.commit();