저는 Spring과 Hibernate를 사용하는 어플리케이션을 개발 중입니다. 나는 두 개의 분리 된 메소드 인 getNamedQuery (String name)과 createNamedQuery (String name)이 왜 있는지 궁금하다. hibernate 세션의 getNamedQuery (String name)과 createNamedQuery (String name)의 차이점은 무엇입니까?
나는 자바 독 here를 확인하고 (createNativeQuery는 getNamedNativeQuery, getNamedSQLQuery 네이티브 쿼리를 만들 수있는 별도의 방법이있어) 네이티브 SQL을 받아 createNamedQuery 제외하고는 유사한 될 수있는 설명을 발견했다.내 기본 쿼리가 더 빠르거나 느린 지 여부를 이해하고 싶습니다.
getNamedQuery :
쿼리 getNamedQuery (문자열 여기서 queryname) 명명 된 쿼리에 대한 쿼리 인스턴스를 만듭니다. 매개 변수 : 여기서 queryname - 사전 정의 된 명명 된 질의 반환의 이름 : 조작 및 실행 에 대한 조회 인스턴스 예외 : 는 IllegalArgumentException - 쿼리가 지정된 이름을 가지는 경우, 또는 정의되지 않은 경우 쿼리 문자열은 유효하지 않은 것으로 확인
createNamedQuery :
쿼리 createNamedQuery (문자열 이름)을 JPA 정의라는 이름의 쿼리 생성 방법. 이 양식은 HQL/JPQL 쿼리 또는 네이티브 쿼리를 나타낼 수 있습니다. 파라미터 : name - 사전 정의 된 이름 첨부 쿼리의 이름 조작 및 실행 용의 Query 인스턴스 예외 : IllegalArgumentException - 지정된 이름이 인 쿼리가 아직 정의되어 있지 않은 경우, 또는 쿼리 캐릭터 라인이 발견되었을 경우 또한 잘못된 참조 : EntityManager.createNamedQuery (문자열)