小编Kam*_*ski的帖子

[QueryDSL / Spring] java.lang.IllegalStateException:连接不是事务性的

我编写Spring + Vaadin应用程序。我想添加QueryDSL来访问数据库(Oracle)。我查看了文档(http://docs.spring.io/spring-data/jdbc/docs/current/reference/html/core.querydsl.html),并阅读了Spring建议使用标准QueryDSL api的内容。我依赖于以下方面来介绍我的项目:

<dependency>
    <groupId>com.mysema.querydsl</groupId>
    <artifactId>querydsl-sql-spring</artifactId>
    <version>${querydsl.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-dbcp2</artifactId>
    <version>2.1.1</version>
</dependency>
<dependency>
    <groupId>com.mysema.querydsl</groupId>
    <artifactId>querydsl-sql</artifactId>
    <version>${querydsl.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我的beans.xml如下:

<bean id="dataSourceOracle" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="${db.oracle.driverClassName}" />
    <property name="url" value="${db.oracle.url}"/>
    <property name="username" value="${db.oracle.username}" />
    <property name="password" value="${db.oracle.password}" />
    <property name="defaultAutoCommit" value="false" />
</bean>
Run Code Online (Sandbox Code Playgroud)

在我的DatabaseFacade实现中,执行以下配置:

private SQLQueryFactory query;

@Autowired
@Qualifier("DataSource")
public void setDataSource(DataSource dataSource) {
    Provider<Connection> provider = new SpringConnectionProvider(dataSource);
    Configuration configuration = new Configuration(new OracleTemplates());
    configuration.setExceptionTranslator(new SpringExceptionTranslator());
    query …
Run Code Online (Sandbox Code Playgroud)

java spring transactional querydsl

5
推荐指数
1
解决办法
1580
查看次数

标签 统计

java ×1

querydsl ×1

spring ×1

transactional ×1