2017-08-09 8 views
0

Ich habe folgende Hibernate-AbfrageWie wird eine Groß-/Kleinschreibung in Groß- und Kleinschreibung beachtet?

@NamedQuery(name = "findByName", query = "SELECT e FROM t=Table e WHERE e.name =:name") 

Und hier ist, wie ich die Parameter

uniqueResult(namedQuery("findByName").setString("name",name)); 

Wird dies einen "Namen" von "NAME" gesetzt unterscheiden? Ich habe gelesen, dass setParameter() Groß-und Kleinschreibung ist, sollte ich ändern setString() zu setParameter()?

+0

meiner Erinnerung nach Standardabfragen sind Groß- und Kleinschreibung. Hast du tatsächlich versucht, das zuerst zu laufen? – aorticDefiance

+0

yeah setString erkennt den Unterschied nicht, –

+0

Beziehen Sie sich auf ': name', also den Parameternamen? nicht der tatsächliche Wert des Parameters? – aorticDefiance

Antwort

0

Dies hängt stark von Ihrer Datenbank und den verwendeten Sortierungen ab. Einige Datenbanken haben Sortierungen, die case-insensitive und CS Groß-und Kleinschreibung. Zum Beispiel auf MySQL latin1_general_ci und latin1_general_cs.

Hibernate ist sich dieser Tatsache nicht bewusst und führt einfach eine Standard-WHERE-Klausel aus, die das Verhalten liefert, für das die Datenbank konfiguriert ist.

https://dev.mysql.com/doc/refman/5.7/en/charset-mysql.html

https://msdn.microsoft.com/de-de/library/ms144250(v=sql.105).aspx

+0

stieß auf diese Option, in anderen SO-Posts .. aber ich weiß immer noch nicht, wie man dies in einer JPA namens Abfrage ausarbeitet –

Verwandte Themen