java - 为什么 @Query 注解的方法需要主体?

标签 java spring

我是 Spring 新手。

我写了一个类:

import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class Kontroller
{
  @Query( value="select * from teszt"
        , nativeQuery = true
        )
  List<Teszt> osszesSor();  // <-- error
//.....
  @RequestMapping("/szam")
  public @ResponseBody String szamossag()
  {
    List<Teszt> sokasag = osszesSor();
    return("számosság="+sokasag.size());
  }

}

它说(它 = IDE (STS),并且在运行时当我调用 osszesSor() 时): 此方法需要正文而不是分号

Teszt 类是:

import java.io.Serializable;
import javax.persistence.*;

@Entity
@IdClass(Teszt.class)
public class Teszt implements Serializable {

  @Id
  private String kulcs;
  @Id
  private String ertek;

//getters, setters

}

这是一个非常简单的表(这就是为什么它在 spring 中变得非常复杂,因为它没有单列键):

create table TESZT
(
    KULCS VARCHAR2(2000) not null,
    ERTEK VARCHAR2(2000) not null,
    constraint TESZT_UN
        unique (KULCS, ERTEK)
)

最佳答案

现在我知道了。 我必须创建一个存储库接口(interface):

public interface TesztRepo extends Repository<Teszt, Teszt>
{
  @Query( value="select * from teszt"
        , nativeQuery = true
        )
  List<Teszt> sokasag();
//...
}

并在 Controller 中自动连接它。

  @Autowired
  TesztRepo dao;
//...
    List<Teszt> sokasag = dao.sokasag();

没那么复杂。

关于java - 为什么 @Query 注解的方法需要主体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59309689/

相关文章:

java - 无法让 JUnit 使用我的 @Autowired 存储库和 MongoTemplate

java - 使用 java 反射设置值

java - 为什么要在 java nio 的 `selector.selectedKeys().iterator()` 中删除 key ?

java - 主页启动器强制停止后未收到 Android AppWidget 的按钮单击事件

java - 使用 MySQL 的 SimpleJdbcInsert

java - 获取Spring文件上传的异常

java - 查找 (x,y) 坐标之间的最大距离

java - 将 PrintQueue 对象从一台计算机发送到另一台计算机?

java - 如果使用 MultipartFile,则有效注释不适用于对象

java - Service层异常处理