我是 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/