Java JPA无法更新实体
我的问题是,当我创建一个借方时,我可以看到它在数据库中创建,但我后来在方法中更改的“金额”从未反映到DB,我在这里缺少什么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
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)是的,你是对的。我在看你的帖子之前就把答案贴出来了。