Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

MS SQL / Hibernate / Unicode

2 réponses
Avatar
JScoobyCed
Bonjour,

J'ai un eapplication web qui lit/ecrit dans MS SQl server au travers de
hibernate.
Ca marche impec'... sauf pour ce qui est des query sql avec des clauses
a unicode.
Par example:

session.createQuery("from User where username='xxxx'");
ne me retourne aucun resultat (ici, "xxxx" est une chaine unicode, la
meme qui au prealablement a ecrit dans la base)

Quand j'utilise Squirrel (client JDBC) pour lister la table User, avec
la query
"select * from users where username=N'xxxx'"
j'ai le resultat attendu (un record trouve et affiche correctement en
language Thai dans l'interface).
Je suis sur de n'avoir aucun soucis de transfert entre browser et
Servlet du point de vue encodage/content-type.

Y-a t'il une ecriture speciale dans Hibernate pour avoir une clause unicode?
J'utilise Hibernate 3.
Merci

--
JSC

2 réponses

Avatar
JScoobyCed
JScoobyCed wrote:
Bonjour,

J'ai un eapplication web qui lit/ecrit dans MS SQl server au travers
de hibernate.
Ca marche impec'... sauf pour ce qui est des query sql avec des clauses
a unicode.
Par example:

session.createQuery("from User where username='xxxx'");
ne me retourne aucun resultat (ici, "xxxx" est une chaine unicode, la
meme qui au prealablement a ecrit dans la base)


Bon, ben j'ai trouve...

En utilisant les "Criteria"
Criteria criter = session.createCriteria(User.class);
criter = criter.add(Restrictions.eq("username", usern));
List list = criter.list();

--
JSC

Avatar
Lionel
JScoobyCed wrote:
session.createQuery("from User where username='xxxx'");


Toujours utiliser des paramètres:
Query q = session.createQuery("from User where username=:userName");
q.setString("userName", userName);