2017-12-06 9 views
0

CRUD 저장소를 처음 사용합니다.CRUD 저장소를 사용하여 결과 목록 가져 오기

나는 세 개의 열이있는 데이터베이스 테이블이 : 나는 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); 
} 
+3

귀하의 질문에 명확하지 않습니다. 컨트롤러에 발생한 오류는 무엇입니까? –

+0

@ Liviu Sosu 컴파일 할 수 없습니다. 내 코드 옆에 오류 아이콘이 있습니다. – Learner

답변

0

코드가 자바 봄에 이루어집니다 경우 최대 절전 모드에서 HQL 언어를 사용해야합니다, 즉의 인터페이스 SQL 쿼리.

람다 식을 사용하는 hql 쿼리는 매우 간단하고 유용합니다. 예를 들어

,

String hql = "FROM Employee E WHERE E.id = 10"; 
Query query = session.createQuery(hql); 
List results = query.list(); 
1

당신은 같은 컨트롤러에서 서비스 클래스를 autowire가해야합니다.

@Autowired 
CourseService courseService; 

@GetMapping(value = "getting/{name}") 
public String getting(@PathVariable("name") String name) { 
    List<CourseMaster> getIds = courseService.findIdByName(Name); 
    return getIds; 
}