집 >데이터 베이스 >MySQL 튜토리얼 >Hibernate Criteria API에서 SQL 쿼리를 어떻게 검색할 수 있습니까?
Hibernate Criteria API에서 SQL 검색: 대안
Criteria API에는 toSql()
메서드가 없지만 쿼리를 나타내는 SQL을 가져오는 데 사용할 수 있는 또 다른 접근 방식이 있습니다.
SQL 추출 기준을 사용자 정의
SQL을 추출하려면 기준 개체의 내부 표현에 액세스해야 합니다. 여기에는 다음이 포함됩니다.
CriteriaImpl
으로 변환합니다. CriteriaImpl
에서 SessionImplementor
을 검색합니다. SessionImplementor
에서 SessionFactoryImplementor
을 가져옵니다. CriteriaQueryTranslator
을 생성합니다. CriteriaJoinWalker
을 인스턴스화합니다. SQL 생성
CriteriaJoinWalker
이 있으면 getSQLString()
메서드를 호출하여 쿼리의 SQL 표현을 가져올 수 있습니다.
코드 예시
다음 예에서는 위 단계를 보여줍니다.
<code class="language-java">CriteriaImpl criteriaImpl = (CriteriaImpl) criteria; SessionImplementor session = criteriaImpl.getSession(); SessionFactoryImplementor factory = session.getFactory(); CriteriaQueryTranslator translator = new CriteriaQueryTranslator(factory, criteriaImpl, criteriaImpl.getEntityOrClassName(), CriteriaQueryTranslator.ROOT_SQL_ALIAS); String[] implementors = factory.getImplementors(criteriaImpl.getEntityOrClassName()); CriteriaJoinWalker walker = new CriteriaJoinWalker((OuterJoinLoadable) factory.getEntityPersister(implementors[0]), translator, factory, criteriaImpl, criteriaImpl.getEntityOrClassName(), session.getLoadQueryInfluencers()); String sql = walker.getSQLString();</code>
위 내용은 Hibernate Criteria API에서 SQL 쿼리를 어떻게 검색할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!