ich verwenden möchte (durchsuchbar) Lokalisierung in meiner Modelle, und ich kam mit dem folgenden Modell bis:HQL wählen auf Embedded-Karte
@Entity
public class Category {
...
@ElementCollection
//key = language code (e.g. 'en') and value = localized label
private Map<String, String> name;
...
}
Was möchte ich nicht tun, ist für die Kategorien abzufragen, die ein enthalten CASEINSENSITIVE Nadel in einer bestimmten Lokalisation (zB mit '% abc%' in ihrem Englisch Namen)
ich habe versucht, so etwas wie
from Category where name.key = :locale and lower(name.value) like :text
aber das scheitert mit einem kann nicht d Eference Skalar Collection Element Ausnahme.
Jetzt die Hibernate Doku sagt, ich muss elements() und Indizes() für Werte und Schlüssel verwenden. Für den Schlüssel wäre dies einfach mit :locale in indices(name)
, aber wie kann ich dann einen Teil des Wertes dieses Gebiets in einer Casesunsensitive Weise übereinstimmen?
Und nur für den Fall, dass dies nicht mit HQL mit meinem Modell machbar ist, wie sonst könnte ich durchsuchbare Lokalisierung modellieren?
gibt es die @Embeddable Lösung verwenden ein Warum wurde ich abgelehnt? – Flo