环境
HikariCP version: HikariCP-java7 2.4.13
JDK version : 1.7.0_080
Database : PostgreSQL
Driver version : 9.1-901.jdbc3
春天,使用HikariCP VS c3p0,相同的代码,不同的结果
@Transactional
public Integer enableItem(Long id){
//change item status from 0 to 1
Integer result = itemDao.enableItem(id);
//load item
//if c3p0 , item status is new value 1
// but Hikari, item status still is 0
Item item = itemDao.findItemById(id);
return result;
}
在同一笔交易中,首先将商品状态从0更改为1,然后读取最新的商品信息,如果c3p0,则商品状态为新值1,但是,光,商品状态仍为0]
Hikari配置:
<property name="driverClassName" value="#{meta['dataSource.driverClassName']}" />
<property name="jdbcUrl" value="#{meta['dataSource.url']}" />
<property name="username" value="#{meta['dataSource.username']}" />
<property name="password" value="#{meta['dataSource.password']}" />
<property name="readOnly" value="false" />
<property name="idleTimeout" value="#{meta['dataSource.maxIdleTime']}" />
<property name="connectionTimeout" value="30000" />
<property name="maxLifetime" value="1800000" />
<property name="maximumPoolSize" value="#{meta['dataSource.maxPoolSize']}" />
<property name="minimumIdle" value="#{meta['dataSource.minPoolSize']}" />
</bean>
我希望与Hikari一起获得最新的价值。配置有问题吗?
尝试添加<property name="transactionIsolation" value="TRANSACTION_READ_COMMITTED"