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