에서 복합 ID를 확장 :NHibernate에 아래와 같이 우리는 매핑 된 복합 기본 키 테이블이 HQL
mapping.CompositeId().KeyReference(e => e.Node).KeyProperty(e => e.DtFr).UnsavedValue("any");
우리는 복잡한 조건에 의해 테이블에서 여러 행을 삭제해야합니다 예를 들어, n.Node.Contract.Code = "1234"
delete from Entity n where n in (select c from Entity c where c.Node.Contract.Code = "1234")
그러나 생성 된 SQL 쿼리에
는 기본 키 열 주위에 괄호가없는 :는 solution에 따르면 우리는 다음 HQL을 시도 :
select ... from ENTITY n where n.IDNODE, n.DTFR in (select c.IDNODE, c.DTFR ...
우리는 HQL (where (n) in
)에 괄호를 추가 명시 적으로했지만, NHibernate에 그들을 무시합니다.
NHibernate가 올바른 SQL을 생성하도록하기 위해 할 수있는 일은 무엇입니까?
NHibernate의 버전은 4.1.1.4000
이고, RDBMS는 Oracle 10.2
입니다.
SQL dialect는 NHibernate.Dialect.Oracle10gDialect
으로 설정됩니다.