Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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 Spring事务未设置连接只读错误_Java_Spring_Jpa - Fatal编程技术网

Java Spring事务未设置连接只读错误

Java Spring事务未设置连接只读错误,java,spring,jpa,Java,Spring,Jpa,我有一个设置,使用OpenEntityManagerViewFilter从数据库中启用非事务性读取。为了在主/从设置中将这些读取发送到从设备,我将连接池设置为默认情况下将连接设置为只读。我现在的问题是,即使是带有@Transactional注释的方法也是读写的,连接也没有设置为读写,事务被发送到只读服务器。这是否是Spring中的预期行为和/或如何解决此问题?面临相同的问题,尽管我在CP30池中将只读标志默认设置为true。您可以通过ConnectionCustomizer接口执行此操作 我猜s

我有一个设置,使用OpenEntityManagerViewFilter从数据库中启用非事务性读取。为了在主/从设置中将这些读取发送到从设备,我将连接池设置为默认情况下将连接设置为只读。我现在的问题是,即使是带有@Transactional注释的方法也是读写的,连接也没有设置为读写,事务被发送到只读服务器。这是否是Spring中的预期行为和/或如何解决此问题?

面临相同的问题,尽管我在CP30池中将只读标志默认设置为true。您可以通过ConnectionCustomizer接口执行此操作

我猜spring假定默认只读值为false,因此不对其进行更改。请参阅DataSourceUtils.prepareConnectionForTransaction


不知道这是否应该作为错误提出。

我们使用一个特殊的注释在数据源之间切换:在这种情况下为master/slave,在事务注释上为只读属性,我们不在池上设置默认值,尽管可以说对于从属数据源,您如何将连接池设置为“只读”以及使用了什么txn隔离?@sura2k HikariCP有一个HikariDataSource.setReadOnly,我正在使用innodb的默认隔离级别(可重复读取)@borowis:J/conctor和mariadb mysql client for java有一个ReplicatorDriver,它根据连接只读标志自动选择master/slace,所以我尝试使用它,因为这就是它的用途。