2011-02-08 2 views
1

안녕 얘들 아,
나는 nhibernate 2.2를 사용하고 있으며 답을 찾을 수없는 문제에 부딪쳤다. 내 프로그램은 hibernate.cfg.xml 파일에 할당 된 기본 스키마를 다음과 같이 사용하고 있습니다. <property name="default_schema">MY_SCHEMA</property>
생성 된 모든 SQL 문에 대해 보급 된대로 작동하지만, 기본 스키마를 다음과 같이 할당해야하는 수식이 있습니다. 잘 :
<property name="Count" type="int" formula="SELECT COUNT(*) FROM DETAILS WHERE DETAILS.ID = ID" />
MY_SCHEMA 변화는 상대적으로 자주, 그래서 나는 하드 스키마에 의존하지 않고이 가능 <property name="Count" type="int" formula="SELECT COUNT(*) FROM MY_SCHEMA.DETAILS WHERE DETAILS.ID = ID" />
으로 해석되는 SQL이 필요하십니까? 감사! 세션 공장을 구축 할 때수식에서 사용되지 않는 nHibernate 기본 스키마

케빈

+0

로그온 트리거를 사용하십시오. http://stackoverflow.com/questions/283589/oracle-setting-per-user-default-scheme-not-altering-a-session –

답변

0

당신은 즉시 당신의 매핑을 변경할 수 있습니다.

물론 Fluent 또는 ConfORM과 같은 코드 기반 매핑 솔루션을 사용하면 쉽게 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다! 세션 팩토리에서 매핑을 변경하는 방법을 이해하고 현재 default_schema가 정의 된 곳입니다. 내 문제는 그 수식이 "생성 된 SQL"이 아니기 때문에 nHibernate가 default_schema를 정규화되지 않은 테이블 이름에 적용하지 않기 때문에 다른 모든 경우에 해당됩니다. 구성 파일에서 현재 기본값을 가져 오거나 nHibernate가 SQL을 생성 할 때 수식을 처리하도록 지시하는 방법이 있습니까? – JCFire

+0

아마도 내 대답이 명확하지 않을 수 있습니다. 제가 제안하는 것은 구성을 만들 때 ** 수식 **을 수정하는 것입니다. –

+0

슬프게도 우리는 기본 xml 파일의 사용에 제약을 받고 구성을 동적으로 만들지 않습니다. – JCFire

관련 문제