Unterschied zwischen Restrictions.like und .ilike in der Hibernate-Kriterien-API
Hibernate ist Criteria
API hat Restrictions.ilike
Funktion hat den folgenden Vertrag:
Einem case-insensitive "wie", ähnlich wie Postgres ilike-operator
Cool. Aber die gleiche Klasse hat auch like
Funktion, da Sie viel mehr vage Vertrag:
Einen "wie" - Einschränkung, die benannte Eigenschaft
Beispiel
Criteria cr = session.createCriteria(Employee.class);
//To get records having fistName starting with zara
cr.add(Restrictions.like("firstName", "zara%"));
//Case sensitive form of the above restriction.
cr.add(Restrictions.ilike("firstName", "zara%"));
InformationsquelleAutor der Frage mindas | 2011-03-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Groß-und Kleinschreibung wie der like-operator in MySQL, hängt von der Art der Spalten und deren Sortierung (siehe http://dev.mysql.com/doc/refman/5.5/en/case-sensitivity.html).
Hibernate ist "nur" eine Schicht auf der Basis von SQL. Den Vertrag der wie-operator wird für die Ausgabe einer SQL-like-operator. Wenn Sie wollen, es ist das gleiche für MySQL und PostgreSQL wählen, dann wählen Sie die richtigen Arten und Sortierungen in der Datenbank-Schemata. Aber Hibernate nicht magisch machen Sie alle Datenbanken die gleichen Regeln.
Gestalten Sie Ihre Anwendung, wählen Sie-und gestalten Sie Ihre Datenbank so, dass das Verhalten, das Sie beobachten, ist das Verhalten, das Sie erwarten.
PS : aber ich Stimme zu, dass die javadoc von Hibernate ist... verbesserungsfähig.
InformationsquelleAutor der Antwort JB Nizet
ilike
tun werden, eine niedrigere Eingangs-Wert und einen niedrigeren Wert der Spalte z.B.select * from table where lower(column) like lower(?)
InformationsquelleAutor der Antwort Tom Chamberlain
In PostgreSQL gibt es einen "ILIKE" und " WIE " verschiedene Operatoren,
Also groß-und Kleinschreibung in unabhängig von der Spalte Eigenschaften, das ist der Grund, warum diese Sache passiert
InformationsquelleAutor der Antwort Charudatta
Hibernate die Criteria-API hat Einschränkungen.ilike-Funktion aus, die der folgenden Vertrag:
Cool. Aber die gleiche Klasse hat wie die Funktion, dass viel mehr vage Vertrag:
Beispiel
InformationsquelleAutor der Antwort Ch Pratap