【问题标题】:QueryDSL query not cast to objectQueryDSL 查询未转换为对象
【发布时间】:2015-10-21 13:33:54
【问题描述】:

我正在使用 SQLServer 中的 QueryDSL 进行查询。 bean 是在构建时使用 maven 生成的。一切运行良好,直到我尝试将结果转换为对象本身。

@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>

【问题讨论】:

    标签: querydsl


    【解决方案1】:

    好的,我自己找到了:

    在文档中有一些其他可以配置的参数的提示。我找到了 exportBeans 属性,它指示生成查询返回的对象。

    只需将其添加到 maven 配置部分即可。

          <schemaPattern>dbo</schemaPattern>
          <exportBeans>true</exportBeans>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    相关资源
    最近更新 更多