Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA无法更新实体_Java_Hibernate_Jpa - Fatal编程技术网

Java JPA无法更新实体

Java JPA无法更新实体,java,hibernate,jpa,Java,Hibernate,Jpa,我的问题是,当我创建一个借方时,我可以看到它在数据库中创建,但我后来在方法中更改的“金额”从未反映到DB,我在这里缺少什么 void createDebit(){ Debit debit=new Debit(); entityManager.persist(debit); entityManager.merge(debit); entityManager.flush(); //calculate some stuff, do other things d

我的问题是,当我创建一个借方时,我可以看到它在数据库中创建,但我后来在方法中更改的“金额”从未反映到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(); 
}

在使用所需数据设置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(); 
}

请添加借方实体code@zargarfoops tnx实体代码说@Column(name=“AMOUNT”,updateable=false)我认为这就是问题所在@Column(name=“AMOUNT”,updateable=false)是的,你是对的。我在看你的帖子之前就把答案贴出来了。