2013-04-09 2 views
0

데이터베이스보기에 가입하려고하는 기준이 있습니다. 가능하다면 어떻게 할 수 있을지 궁금합니다.최대 절전 모드 기준 : 조건이있는 데이터베이스보기에 액세스 할 수 있습니까?

내가 알고 있듯이 createAliascreateCriteria은 루트 기준의 하위 개체에만 참가합니다. detachedCriteria에 대해 읽었지 만 뷰가 아닌 데이터베이스 엔티티에서 생성해야합니다.

HQL에 해당 당신은 데이터베이스보기를 가리키는 엔티티 클래스를 생성하는 XML 매핑을 시도 할 수 있습니다 사전

답변

1

select * from root_criteria rc where rc.id in 
(select view.id from DATABASE_VW view where view.field is not null) 

감사 같은 것입니다. 엔티티의 각 필드는 뷰에서 선택된 필드로 맵핑됩니다. 문서에서

발췌 : 하이버 네이트 매핑에 대한보기 및 기본 테이블 사이에는 차이가 없습니다

  • . 일부 DBMS는 뷰를 올바르게 지원하지 않지만 특히 업데이트를 지원하지만 데이터베이스 수준에서는 투명합니다.

  • subselect (선택 사항) : 불변의 읽기 전용 엔티티를 데이터베이스 subselect에 매핑합니다. 이는 기본 테이블로 대신보기를 원할 때 유용합니다.

다음은 그에 따라 수정, 샘플 구성입니다.

<class name="MappedClassName" mutable="false"> 
<subselect> 
select view.id as viewId from DATABASE_VW view  
</subselect> 
... 
</class> 
+0

이 기능이 작동합니다. 우리는 xml 매핑을 사용하지 않았지만 자바 객체로 선언했습니다. 감사! –

+0

@KevinC 당신을 진심으로 환영합니다. –

0

예 뷰어를 기준으로 사용할 수 있습니다.

보기 만들기. 보기에서 선택하는 모든 열에 대해 맵핑 구성원 변수가있는 Java 오브젝트 (지속적)를 작성하십시오. hbm을 만듭니다.

이제 테이블에 대해 수행 할 수있는 기준으로 Java 객체를 사용할 수 있습니다.