我是使用CRUD Repository的新手。
我有一个包含三列的数据库表:
course_id,名称,课程
我想获得一个course_id名单,例如,
SELECT id FROM table WHERE name='charmaine';
但是,我不想使用查询但使用crud存储库。
我的控制器中显示错误。 我可以知道有这个错误吗?
我的控制器
@GetMapping(value = "getting/{name}")
//@ResponseBody
public String getting(@PathVariable("name") String name) {
List<CourseMaster> getIds = CourseService.findIdByName(Name); —> error icon here
return getIds; —> error icon here
}
服务
public List<CourseMaster> findIdByName(String Name) {
return CourseMasterRepo.findByName(Name);
}
存储库
public interface CourseMasterRepo extends CrudRepository<CourseMaster, Long> {
List<CourseMaster> findByName(String Name);
}
答案 0 :(得分:1)
您必须在控制器中使用自动装配的服务类,例如。
@Autowired
CourseService courseService;
@GetMapping(value = "getting/{name}")
public String getting(@PathVariable("name") String name) {
List<CourseMaster> getIds = courseService.findIdByName(Name);
return getIds;
}
答案 1 :(得分:0)
如果您的代码是在java spring中完成的,则必须在hibernate中使用hql语言,即sql查询的接口。
使用lambda表达式的hql查询非常简单而有用。
例如,
String hql = "FROM Employee E WHERE E.id = 10";
Query query = session.createQuery(hql);
List results = query.list();