11 Stimmen

Groß-/Kleinschreibung nicht beachten Abfrage

Ich habe einige Kartennummern, bei denen Zahlen und Buchstaben gemischt sind. Ich reiche in der ticketNumberIds in diese Methode (Benutzereingabe) und ich möchte, dass sie die Oracle-Datenbank abfragt und die Abfrage Tickets aufgreift, die sich durch Groß- und Kleinschreibung unterscheiden.

Wie kann ich die folgende Abfrage ohne Berücksichtigung der Groß- und Kleinschreibung durchführen?

public List<TicketDO> getTicketDOsById(final List<String> ticketNumberIds) {

    String myQuery = "from TicketDO t where t.ticketNumberId in (:ticketNumberIds)";

    return getEntityManager().createQuery(myQuery).setParameter("ticketNumberIds", ticketNumberIds)
    .getResultList();

}

28voto

James Punkte 18499

Sie können UPPER verwenden, um case-insensitive Abfragen durchzuführen.

public List getTicketDOsById(final List ticketNumberIds) {

    String myQuery = "from TicketDO t where UPPER(t.ticketNumberId) in (:ticketNumberIds)";
    List upperNumbers = new ArrayList();
    for (String number : ticketNumberIds) {
        upperNumbers.add(number.toUppercase());
    }
    return getEntityManager().createQuery(myQuery).setParameter("ticketNumberIds", upperNumbers)
    .getResultList();

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X