首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Spring中使用带有@Query的nativeQuery=true -启动不起作用

在Spring中使用带有@Query的nativeQuery=true -启动不起作用
EN

Stack Overflow用户
提问于 2016-01-12 20:43:27
回答 2查看 24.6K关注 0票数 5

在我的Spring Boot项目中,我有这个pom:

代码语言:javascript
复制
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.1.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
....

我想在其中一个存储库中使用自定义原生查询

代码语言:javascript
复制
@Query(nativeQuery=true, "select * from question q where q.id < 5")
public Collection<QuestionEntity> queryAnnotated();

但是,当我想给参数nativeQuery = true时,我得到了一个语法错误

代码语言:javascript
复制
Syntax error on token ""select * from question q where q.id < 5"", invalid MemberValuePair
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-13 01:04:16

您应该像这样使用@查询:

代码语言:javascript
复制
@Query(nativeQuery = true, value="select * from question q where q.id < 5")
public Collection<QuestionEntity> queryAnnotated();

您的示例中缺少value标记。question表和列q.id应该与数据库的表名和列名完全匹配。

在我的测试应用程序中,它可以工作:

代码语言:javascript
复制
@Repository
public interface QuestionRepository extends JpaRepository<Question, long>{

    @Query(nativeQuery=true, value="SELECT * FROM Question q where q.id < 5")
    public Collection<Question> findQuestion();
}
票数 17
EN

Stack Overflow用户

发布于 2016-01-12 21:14:58

你可以试试这个。根据您的业务需求更改查询和方法。希望它能起作用。

代码语言:javascript
复制
public interface UserRepository extends JpaRepository<User, Long> {

  @Query(value = "SELECT * FROM USERS WHERE EMAIL_ADDRESS = ?0", nativeQuery = true)
  User findByEmailAddress(String emailAddress);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34744033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档