【发布时间】:2020-11-21 00:55:38
【问题描述】:
下面是我的代码。 Acct 对象有一个字段版本,我使用了@version 注释。
我猜是因为我没有提交交易。
它产生了脏数据。
在我向数据库查询同一张表之后。
jpa 自动更新脏数据的版本。 但除了版本字段。其他字段没有更新,搞得我一头雾水
saveFlush 将解决问题。但是太慢了!
// open transaction
Acct acct = acctRepository.findByAcctNo("a");
System.out.println("version1:" + acct.getVersion()); // 1
for(int i = 0; i < 100 ; i ++) {
acct.deposit(BigDecimal.ONE);
}
System.out.println("version2:" + acct.getVersion()); // 100
Acct acctOther = acctRepository.findByAcctNo("b");
System.out.println("version3:" + acct.getVersion()); // 2 other info is equal with version2
// commit transaction
【问题讨论】: