2010-04-14 3 views
0

가입 된 하위 클래스를 업데이트해야합니다. Hibernate는 hql이나 named-query에서 조인 된 하위 클래스를 업데이트 할 수 없으므로 SQL을 통해이를 수행하려고합니다. named-queries를 통한 업데이트가 Hibernate에서 지원되지 않기 때문에 나는 또한 SQL named-query를 사용할 수 없다.최대 절전 모드에서 SQLQuery를 통해 업데이트를 실행하는 방법

그래서 SQLQuery를 사용하기로 결정했습니다. 그러나 addScalar()를 호출하지에 대한 불만을 최대 절전 모드 :

org.hibernate.QueryException :는 addEntity() 또는 addScalar() 쿼리를 실행하기 전에 SQL 쿼리에서 호출해야합니다.

영향을받는 행 수를 반환하는 업데이트 및 해당 열의 이름은 어떻게 지정됩니까?

최대 절전 모드에서 조인 된 하위 클래스를 업데이트하는 다른 방법이 있습니까? 사전에

<hibernate-mapping> 
     <class name="example.NiceClass" table="NICE_CLASS"> 
    <meta attribute="class-code"></meta> 
    <id name="id" type="java.lang.Long"> 
    <column name="NICE_CLASS_ID" precision="8" /> 
    <generator class="sequence"> 
    <param name="sequence">NICE_CLASS_SEQ</param> 
    </generator> 
    </id> 
    </class> 
</hibernate-mapping>  
<hibernate-mapping package="example"> 
    <joined-subclass name="SubJoinedClass" table="SUB_JOINED_CLASS" 
    extends="NiceClass"> 
     <key column="NICE_CLASS_ID" foreign-key="NICE_JOINED_ID_FK"/> 
    <property name="name" type="string" not-null="false"> 
    <column name="NAME" > 
    <comment>name</comment> 
    </column> 
    </property> 
     </joined-subclass> 
</hibernate-mapping> 

감사 :

여기에 내가 할 노력하고있어 간단한 예입니다!

그래서 나는하고 싶지 :

update SubJoinedClass set name = 'newName' 
+0

조인 된 하위 클래스에서 수행 할 쿼리를 설명 할 수 있습니까? – oedo

답변

1

어떻게 업데이트 쿼리를 실행합니까? 어떤 메소드를 호출하여 실행합니까? 'ExecuteUpdate'를 호출합니까?

왜 HQL을 사용하여 서브 클래스에 대한 업데이트 쿼리를 실행할 수 없다고 생각하십니까? AFAIK, 가능합니다.

+0

Im SpringDAOImpl 코드 사용 : query namedQuery = session.getNamedQuery 그리고 org.hibernate.QueryException : 아직 지원되지 않는 조인 또는 유니온 서브 클래스에 대한 명령문 업데이트! 최대 절전 모드 버전 3.0.5 빠른 응답을 보내 주셔서 감사합니다! – ssedano

+0

예, 맞습니다. 그러나 나중에 출시되는 버전에서는 사용중인 버전 (3.0.5)이 출시됩니다. 3.0.5를 사용하는 방법을 알고 계신 분도 있습니까? 감사 – ssedano

관련 문제