J'ai besoin de mettre à jour une sous-classe jointe. Comme Hibernate ne permet pas de mettre à jour les sous-classes jointes dans hql ou named-query, je veux le faire via SQL. Je ne peux pas non plus utiliser une requête nommée sql car les mises à jour via named-query ne sont pas supportées par Hibernate. J'ai donc décidé d'utiliser un SQLQuery.Comment exécuter une mise à jour via SQLQuery dans Hibernate
Mais Hibernate plaintes de ne pas appeler addScalar():
org.hibernate.QueryException: addEntity() ou addScalar() doit être appelée sur une requête SQL avant d'exécuter la requête.
Des mises à jour renvoient-elles le nombre de lignes affectées et comment est appelée cette colonne?
Existe-t-il d'autres manières de mettre à jour une sous-classe jointe dans Hibernate?
Voici un bref exemple de ce que je suis en train de faire:
<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>
Merci à l'avance!
Je veux faire:
update SubJoinedClass set name = 'newName'
pouvez-vous expliquer quelle requête vous souhaitez effectuer sur la sous-classe jointe? – oedo