web-dev-qa-db-fra.com

Hibernate 5.2.5.Final méthode createSQLQuery () déconseillée

J'utilise la méthode createSQL() dans Hibernate pour effectuer une opération d'insertion dans ma base de données.

Ce que je veux faire, c'est déclraer une instruction SQL personnalisée afin de pouvoir appliquer une fonction MD5() à un champ d'une table. C'est pourquoi je ne peux pas simplement utiliser la méthode save(Object).

J'ai reçu un avertissement d'Eclipse IDE qui dit: The method createSQLQuery(String) from the type QueryProducer is deprecated.

Malgré cela, l'opération d'insertion fonctionne comme prévu.

La version actuelle d'Hibernate que j'utilise sur mon projet est la 5.2.5.Final.

Donc, la question serait: existe-t-il une autre façon de faire la même chose dans cette version d'Hibernate afin de se débarrasser de cet avertissement ennuyeux?

Je sais également que l'ajout d'annotations @SuppressWarnings("deprecation") résoudra le problème, mais je ne suis pas sûr que cela causera des problèmes à l'avenir.

Il convient de mentionner que je suis un débutant utilisant ce cadre.

13
Sandoval0992

Le javadoc de la dépréciée QueryProducer.createSQL(String) décrit ce qu'il faut utiliser à la place:

Obsolète. (depuis 5.2) utilisez plutôt createNativeQuery(String)
Créez une instance NativeQuery pour la chaîne de requête SQL donnée.

Ajouter simplement @SuppressWarnings("deprecation") n'est généralement pas une bonne idée, car vous pourriez avoir des problèmes à l'avenir; c'est-à-dire lorsque vous passez à une version plus récente d'Hibernate où la méthode désormais obsolète aura alors été supprimée.

28
Thomas Fritsch