À l'aide d'une jointure dans Hibernate HQL requête de mise à jour
j'ai la suite hibernate mapping:
<class name="Domain.Roomreservation, Core" table="Reservationroom">
<id name="ID" unsaved-value="undefined">
<generator class="native">
<!--<param name="sequence">GLOBALSEQUENCE</param>-->
</generator>
</id>
<property name="FromTime" not-null="true" index="IDX_RESRAUM_FromTime" />
<property name="UntilTime" not-null="true" index="IDX_RESRAUM_UntilTime"/>
<many-to-one name="Booking" column="Book_ID" index="IDX_RAUMRES_BOOK" lazy="false"
class="Domain.Booking, Core" not-null="true" />
</class>
Et la Reservationroom
tableau ressemble à:
ID <pk>
Book_ID <fk>
FromTime
UntilTime
....
....
Ma Requête hql ressemble:
String hql = "UPDATE Roomreservation as rr set rr.FromTime= 12:15" +
"Inner Join Booking b ON rr.Book_ID= b.ID " +
"Where b.ID = 95637";
IQuery query = CurrentSession.CreateQuery(hql);
int result = query.ExecuteUpdate();
Debug.WriteLine("Rows affected: " + result);
Mais j'ai toujours Error: NHibernate.Hql.Ast.ANTLR.QuerySyntaxException
Quelqu'un peut m'aider comment faire pour obtenir que cela fonctionne?
OriginalL'auteur Paks | 2012-08-20
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser une sous-requête au lieu de les joindre. À peu près comme suit:
En outre, en fonction du type de
FromTime
il est probable qu'il devrait être présenté dans un autre format.il peut être possible que si vous êtes à l'aide de la Cartographie des Annotations de mise en veille prolongée.
OriginalL'auteur Mikko Maunu
Ce manque de devis unique pour les rr.FromTime= '12:15" devrait être l'erreur.
Pouvez vous s'il vous plaît vérifier ce point.
rr.FromTime= '12:15'" + "Intérieure Pour cela, nous avons besoin de donner de l'espace, les rr.FromTime= '12:15'" + " Intérieure
Hibernate ne supporte pas les Rejoindre sur Update/Delete.
OriginalL'auteur Ramaraj Karuppusamy