有 Java 编程相关的问题?

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

java JPA无法更新实体

我的问题是,当我创建一个借方时,我可以在数据库中看到它的创建,但我后来在方法中更改的“金额”从未反映到DB,我在这里缺少什么

void createDebit(){

  Debit debit=new Debit();
  entityManager.persist(debit);
  entityManager.merge(debit);       
  entityManager.flush();

 //calculate some stuff, do other things

  debit.changeAmount(100);
  entityManager.merge(debit);   
  entityManager.flush(); 
}

共 (1) 个答案

  1. # 1 楼答案

    在用所需数据设置bean之后,需要持久化数据。第一次持久化时,似乎并没有设置任何内容,所以,若有一些自动生成的键,那个么它在表中是可见的,列的其余部分似乎可以为空。在第二个块中,当您尝试合并时,应该首先获取存储在DB中的数据,然后设置其数量。这应该行得通

    虽然我不明白为什么你们要把这样的数据分两个阶段保存

    void createDebit(){
    
      Debit debit=new Debit();
      entityManager.persist(debit);
      entityManager.merge(debit);       
      entityManager.flush();
    
     //calculate some stuff, do other things
    ***//Get Above Debit data from DB and then set amount.***
    
      debit.changeAmount(100);
      entityManager.merge(debit);   
      entityManager.flush(); 
    }