> 데이터 베이스 > MySQL 튜토리얼 > Hibernate 기준 쿼리에서 열을 어떻게 제외할 수 있습니까?

Hibernate 기준 쿼리에서 열을 어떻게 제외할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-10-28 04:42:30
원래의
247명이 탐색했습니다.

How Can I Exclude Columns from a Hibernate Criteria Query?

특정 열 선택을 위한 Hibernate 기준 쿼리

Hibernate에서 기준 쿼리는 기본적으로 데이터베이스에서 모든 열을 검색합니다. 그러나 경우에 따라 성능을 향상하거나 특정 요구 사항을 충족하기 위해 특정 열을 제외할 수도 있습니다.

프로젝션을 사용하여 열 제외

특정 열을 제외하려면 기준 쿼리의 경우 Projections.projectionList() 메서드를 사용할 수 있습니다. 이 방법을 사용하면 프로젝션에서 원하는 열만 지정할 수 있습니다.

예:

"사용자" 테이블에서 모든 열을 검색하는 쿼리가 있다고 가정합니다. 쿼리에서 "age" 열을 제외하려면 다음 코드를 사용할 수 있습니다.

<code class="java">Criteria cr = session.createCriteria(User.class)
    .setProjection(Projections.projectionList()
      .add(Projections.property("id"), "id")
      .add(Projections.property("name"), "name"))
    .setResultTransformer(Transformers.aliasToBean(User.class));</code>
로그인 후 복사

쿼리 오류 처리

프로젝션을 사용할 때 오류가 발생할 수 있습니다. where 절이나 쿼리의 다른 부분에서 제외된 열을 참조하는 경우. 이 문제를 해결하려면 프로젝션된 열에 할당된 별칭을 명시적으로 지정하면 됩니다.

예:

<code class="java">Criteria cr = session.createCriteria(User.class)
    .setProjection(Projections.projectionList()
      .add(Projections.property("id"), "user_id")
      .add(Projections.property("name"), "user_name"))
    .setResultTransformer(Transformers.aliasToBean(User.class))
    .add(Restrictions.gt("user_id", 10));</code>
로그인 후 복사

이 쿼리에서 "id" 및 " name" 열은 각각 "user_id" 및 "user_name" 별칭에 프로젝션 및 할당됩니다. 그런 다음 where 절은 이러한 별칭을 참조하여 원래 열 이름을 참조함으로써 발생할 수 있는 오류를 방지합니다.

위 내용은 Hibernate 기준 쿼리에서 열을 어떻게 제외할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿