“Pas pris en charge pour les opérations DML” par simple requête de mise à JOUR
J'obtiens le message d'erreur Not supported for DML operations
lorsque j'utilise la suite HQL...
@Query("UPDATE WorkstationEntity w SET w.lastActivity = :timestamp WHERE w.uuid = :uuid")
void updateLastActivity(@Param("uuid") String uuid, @Param("timestamp") Timestamp timestamp);
Ce qui pourrait être à l'origine du problème? Il ne semble pas être une erreur les plus courants étant donné le peu de résultats que j'ai trouvé dans Google.
- Plein stacktrace?
- pouvez-vous fournir le code complet d'inscription et la trace de la pile.
- Regardez la solution retenue pour ce stackoverflow.com/a/12426144/172306 ressemble.
- +1 pour le "@la Modification" (à partir de votre propre commentaire dans la réponse de la Ajay Bhojak) vous devez ajouter ce que l', la réponse par défaut, comme c'est le soi-disant printemps JPA Référentiel question, vous avez été questionnement
Vous devez vous connecter pour publier un commentaire.
Vérifiez le post hibernate hql ERREUR: Pas pris en charge pour les opérations DML dans le les utilisateurs d'hibernate forum.
Plus probable que vous avez appelé
pour votre
UPDATE
requête. Au lieu de cela, vous devez appeler@Modifying
- merci!!J'ai également le même problème avec les annotations.Après des recherches et de faire quelques trucs, j'ai été en mesure de le résoudre.
Il y a quelques étapes ci-dessous qui vous devez vérifier lors de l'utilisation opération DML avec JPA.
Utilisation anotation
@Modifiant(org.springframework.les données.jpa.référentiel.La modification) et @Transactionnelle(org.springframework.des transactions.annotation.Transactionnelle) sur la méthode requise.
Utiliser void comme type de retour de la méthode.
e.g:-
@Modifiant
@Query("UPDATE ProcedureDTO l'ENSEMBLE de l'o.o.isSelectedByUser =?1")
@Transactional
public void getListOfProcedureBasedOnSelection(Boolean isSelected);
La même chose m'est arrivé parce que, q un objet de la classe de Requête, q.liste() ne doit pas être utilisé pour les mises à jour ou suppressions, mais q.executeUpdate()
Assurez-vous que votre service à la méthode de classe qui appelle
updateLastActivity
a@Transactional(org.springframework.transaction.annotation.Transactional)
annotation. et de modifier le référentiel de la méthode ci-dessous,Pour plus d'information veuillez utiliser cette réponse.