我正在从SQLServer查询QueryDSL。使用maven在构建时生成bean。一切都运行良好,直到我尝试将结果转换为对象本身。
@RequestMapping("getAbsenceCauses")
public List<CauseOfAbsences> getAbsenceCauses() {
SQLTemplates templates = new SQLServerTemplates();
Configuration configuration = new Configuration(templates);
SQLQueryFactory queryFactory = new SQLQueryFactory(configuration, dataSource);
CauseOfAbsences absence = new CauseOfAbsences("c");
List<CauseOfAbsences> absenceCauses = queryFactory.from(absence).list(absence);
return absenceCauses;
}
在运行时,我收到以下异常:
java.lang.IllegalArgumentException: RelationalPath based projection can only be used with generated Bean types
另一篇文章说我必须“ 您需要在Bean类生成下生成所描述的here bean类型。“
但是这些bean是由maven生成的。有什么办法可以告诉maven生成这些类型吗?目前我正在生成如下记录:
<plugin>
<groupId>com.mysema.querydsl</groupId>
<artifactId>querydsl-maven-plugin</artifactId>
<version>${querydsl.version}</version>
<executions>
<execution>
<goals>
<goal>export</goal>
</goals>
</execution>
</executions>
<configuration>
<jdbcDriver>com.microsoft.sqlserver.jdbc.SQLServerDriver</jdbcDriver>
<jdbcUrl>jdbc:sqlserver://T00-STEMIG.some.where:1433;databaseName=Test</jdbcUrl>
<packageName>net.neobp.neo.query</packageName>
<targetFolder>${project.basedir}/target/generated-sources/java</targetFolder>
<jdbcUser>user</jdbcUser>
<jdbcPassword>pass</jdbcPassword>
<schemaPattern>dbo</schemaPattern>
</configuration>
<dependencies>
<dependency>
<groupId>com.microsoft</groupId>
<artifactId>sqljdbc4</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</plugin>
答案 0 :(得分:1)
好的,自己找到了:
在文档中有一些可以配置的其他参数的提示。我找到了exportBeans属性,它指示生成查询返回的对象。
只需将其添加到maven配置部分即可。
<schemaPattern>dbo</schemaPattern>
<exportBeans>true</exportBeans>