【问题标题】:Entity Manager save changes in Database实体管理器将更改保存在数据库中
【发布时间】:2021-08-02 18:14:56
【问题描述】:

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

【问题讨论】:

    标签: java sql database


    【解决方案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();
    

    【讨论】:

    • 代码正在运行,但我不知道如何将此更改添加到数据库。
    • 正如我所说,您应该使用事务块包装您的代码。 Hibernate 会将更改保存到数据库。
    猜你喜欢
    • 1970-01-01
    • 2020-07-01
    • 2018-01-05
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多