Bonjour,

j'aimerai savoir s'il est possible d'exécuter une requête mySQL à travers Hibernate en utilisant la méthode startsWith de comparaison de chaine de caractères ou même la méthode like. En fait, je voudrais trouver toutes les entités dont un attribut commence par une chaine de caractères définie.

J'ai tenté d'utiliser le "createSQLQuery" d'Hiberante, mais j'ai une erreur dans la syntaxe SQL.

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Session session = HibernateUtil.currentSession();	
String query = "select * from Tache where cheminProjet LIKE '" + this.cheminProjet+ "/% '";
List res = session.createSQLQuery(query).list();	
int nb = res.size();
HibernateUtil.closeSession();
Or si j'éxécute ce code, j'ai alors l'erreur suivante :
Exception in thread "main" org.hibernate.MappingException: No Dialect mapping for JDBC type: -1
at org.hibernate.dialect.TypeNames.get(TypeNames.java:56)
at org.hibernate.dialect.TypeNames.get(TypeNames.java:81)
at org.hibernate.dialect.Dialect.getHibernateTypeName(Dialect.java:370)
at org.hibernate.loader.custom.CustomLoader$Metadata.getHibernateType(CustomLoader.java:559)
at org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.performDiscovery(CustomLoader.java:485)
at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:501)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1796) .........;
Je ne comprends pas où est l'erreur dans ma requête ...
Merci de votre aide