【发布时间】:2022-10-21 08:45:45
【问题描述】:
使用 Spring-Data-JDBC 存储库和 ArcadeDB 作为持久性,一个简单的“count()”会在错误时运行。
2022-07-10 12:54:33.755 DEBUG 14320 --- [ main] o.s.jdbc.support.JdbcTransactionManager : Creating new transaction with name [org.springframework.data.jdbc.repository.support.SimpleJdbcRepository.count]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT,readOnly
2022-07-10 12:54:33.760 DEBUG 14320 --- [ main] o.s.jdbc.support.JdbcTransactionManager : Acquired Connection [org.postgresql.jdbc.PgConnection@9263c54] for JDBC transaction
2022-07-10 12:54:33.797 DEBUG 14320 --- [ main] o.s.jdbc.datasource.DataSourceUtils : Setting JDBC Connection [org.postgresql.jdbc.PgConnection@9263c54] read-only
2022-07-10 12:54:33.802 DEBUG 14320 --- [ main] o.s.jdbc.support.JdbcTransactionManager : Switching JDBC Connection [org.postgresql.jdbc.PgConnection@9263c54] to manual commit
2022-07-10 12:54:34.802 DEBUG 14320 --- [ main] o.s.jdbc.core.JdbcTemplate : Executing SQL query [SELECT COUNT(*) FROM `Team`]
org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [SELECT COUNT(*) FROM `Team`]; nested exception is org.postgresql.util.PSQLException: ERROR: Syntax error on parsing query: Encountered " <READ> "READ "" at line 1, column 7. Was expecting one of:
<EOF>
<ISOLATION> ...
";" ...
<ISOLATION> ..
但是在普通 JdbcTemplate 中执行的相同 sql-query 运行成功:
jdbcTemplate.execute("select count(*) from `Team`")
我怀疑发生错误是因为存储库调用在事务中运行 sql 语句,而普通 JdbcTemplate 调用是在没有事务的情况下调用的。
我的问题是:我可以让 ArcadeDB 与 Spring 事务管理器一起工作吗?如果没有,我可以在没有事务的情况下使用 Spring Data 的存储库吗?
【问题讨论】:
标签: spring-data arcadedb