该位置不允许查询注释

Oxn*_*ard 4 hibernate spring-data-jpa spring-boot

春天新..

\n\n

尝试使用 @Query 注释,但收到以下消息:\n此位置不允许使用注释 @Query

\n\n

我所拥有的一定是我缺少的一些设置或配置:

\n\n

pom.xml

\n\n
<parent>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-parent</artifactId>\n <version>1.5.2.RELEASE</version>\n <relativePath/>\n</parent>\n\xe2\x80\xa6 to dependency:\n<dependency>\n  <groupId>org.springframework.boot</groupId>\n  <artifactId>spring-boot-starter-data-jpa</artifactId>      \n</dependency>\n
Run Code Online (Sandbox Code Playgroud)\n\n

被迫使用 1.5.2.RELEASE,因为它是雇主当前的标准\n查看 Maven 依赖项,我看到:\nhibernate-core-5.0.12.Final\nhibernate-jpa-2.1-api-1.0.0。 Final.jar\nspring-data-jpa-1.11.1.RELEASE.jar\n+ 许多其他

\n\n

在我看到的一些示例中,添加 @Query 注释似乎很容易,但它似乎不起作用。目前我只有一个实体、存储库、控制器和一个 main。

\n\n

我已经尝试过 @Repository 但它似乎没有什么区别

\n\n

这是回购协议

\n\n
public interface DeptRepo extends JpaRepository<Dept, Long> {\n\n@Query(value = "select d from dept d where name = \'ACCOUNTING\'")\nList<Dept> findByAccounting;\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

应用程序属性

\n\n
spring.jpa.show_sql=true\nspring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle12cDialect\nspring.datasource.url=jdbc:oracle:thin:@localhost:1521/to2b\nspring.datasource.username=scott\nspring.datasource.password=tiger\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的问题是我缺少什么设置信息?

\n

Sür*_* AK 5

代替

public interface DeptRepo extends JpaRepository<Dept, Long> {
   @Query(value = "select d from dept d where name = 'ACCOUNTING'")
   List<Dept> findByAccounting;
}
Run Code Online (Sandbox Code Playgroud)

使用

public interface DeptRepo extends JpaRepository<Dept, Long> {
  @Query(value = "select d from dept d where name = 'ACCOUNTING'")
  List<Dept> findByAccounting(); 
}
Run Code Online (Sandbox Code Playgroud)