우리 회사에서하고있는 프로젝트에 대해 NHibernate를 프로 포지션하고 있는데 NHibernate가 Criteria 쿼리 언어를 사용할 때 테이블의 특정 열만 검색하도록 최적화 할 수 있는지 알고 싶습니다.Critera 쿼리를 사용할 때만 특정 열을 검색합니까?
예를 들면. 예를 들어, 30 개의 열이있는 테이블이 있고이 테이블에 대해 1 대 1로 일치하는 NHibernate를 사용하여 개체에 매핑되어 있다고 가정 해 봅시다. 그러나 시스템의 특정 기능의 경우 해당 열 중 두 개만 신경 써야합니다.
이제는 HQL을 사용할 수 있고 이것을 수행 할 CreateQuery
을 수행 할 수 있다는 것을 알고 있습니다. 그러나이를 위해서는 선택적으로 검색 할 필드의 각 조합에 대해 생성자를 만들어야합니다. 런타임까지 누락 된 생성자를 잡아 내지 않으므로 유지 관리 관점에서 볼 때 커다란 고통이 될 수 있습니다.
HQL에서 직접 SQL 쿼리 대신 매개 변수화 된 SQL을 생성하므로 Criteria 쿼리 언어를 좋아합니다. 특정 열을 포함하지 않는 "제외"모델이 있지만 대부분의 경우 제외 된 것보다 많은 열이 포함됩니다.
아래의 의견 덕분에 나는 예상을 들여다 보았다. 그리고 이것은 아직도 나에게 이상적인 상황이 아니다. 다음 사용하는 경우 :
var list = session
.CreateCriteria(typeof (Task))
.SetProjection(Projections
.ProjectionList()
.Add(Projections.Property("Id")))
.List();
내가 변수 list
단지 인의 int와 끝까지, 나는 기본값으로 설정된 모든 필드 내 전체 작업 개체 만이 선호하는 것입니다. 이것은 가능한가? 지금까지 내가 본 모든 것은 아니오라고 말했습니다.
질문에 대한 답변에서 내 게시물에 대한 업데이트를 참조하십시오. – Danielg