Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么@Query注释的方法需要一个主体?_Java_Spring - Fatal编程技术网

Java 为什么@Query注释的方法需要一个主体?

Java 为什么@Query注释的方法需要一个主体?,java,spring,Java,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; @Cont

我是春天的新手

我写了一节课:

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());
  }

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

现在我知道了。 我必须创建一个回购接口:

public interface TesztRepo extends Repository<Teszt, Teszt>
{
  @Query( value="select * from teszt"
        , nativeQuery = true
        )
  List<Teszt> sokasag();
//...
}
公共接口TESZTREP扩展存储库
{
@查询(value=“选择*来自teszt”
,nativeQuery=true
)
列出sokasag();
//...
}
并在控制器中自动连线

  @Autowired
  TesztRepo dao;
//...
    List<Teszt> sokasag = dao.sokasag();
@Autowired
特斯拉波道;
//...
List-sokasag=dao.sokasag();

没有那么复杂。

因为一个类的所有方法都需要一个主体。只有接口和抽象类可以定义没有主体的方法。查询注释应该对Spring数据存储库接口中声明的方法进行注释。不是控制器的方法。在(2.2)的示例中,findallactiveUsersActivity()似乎是类中的方法。为什么可以,而我的不行?在本页的第2.2节中,你在哪里看到一个类?我没有看到任何。还有什么可以是函数定义?我应该写在哪里?好的,谢谢,我现在明白了。
public interface TesztRepo extends Repository<Teszt, Teszt>
{
  @Query( value="select * from teszt"
        , nativeQuery = true
        )
  List<Teszt> sokasag();
//...
}
  @Autowired
  TesztRepo dao;
//...
    List<Teszt> sokasag = dao.sokasag();