So erstellen Sie Kriterien mit Array-Feld in Hibernate

8

Ich verwende Hibernate und Postgres und definiere einen character(1)[] Spaltentyp.

Ich weiß also nicht, wie man criteria benutzt, um einen Wert im Array zu finden.

Wie diese Abfrage

%Vor%     
user3503888 07.04.2016, 00:36
quelle

2 Antworten

4

Ich bin nicht vertraut mit Postgres und seinen Typen, aber Sie können Ihren eigenen Typ mit benutzerdefiniertes Basistyp-Mapping . Das könnte die Abfrage vereinfachen.

Es gibt viele Threads in SO bezüglich Postres-Array-Typen und Hibernate, zum Beispiel dieser . Ein weiteres Array-Mapping-Beispiel, das nützlich sein könnte ist hier . Endlich, hier ist ein Beispiel von Verwenden von Kriterien mit Benutzertyp.

Codebeispiel könnte

sein %Vor%

Auch wenn es für die Implementierung nicht wichtig ist, können Sie maximale Länge im Entitätsmodell definieren, indem Sie Ihr Feld mit @Column(length = 1) annotieren.

Oder wenn Sie ein Array von Zeichen mit der Länge von 1 speichern müssen, können Sie ein Sammlungsart .

Ich hoffe, ich habe den Punkt richtig verstanden, aber es wäre nett, wenn die Problemdomäne besser beschrieben wäre.

    
CAPS LOCK 15.04.2016 12:45
quelle
2

Sie haben also ein Array von einzelnen Zeichen ... Problem ist, dass in PG keine feste Länge ist. Ich hatte dieses Problem, aber vor etwa 10 Jahren. Zu dieser Zeit hatte ich diese Spalte als String gemappt, und auf diese Weise konnte ich interne Daten verarbeiten - einfach per Komma schneiden und tun, was benötigt wird. Wenn du das hasst, wie ich es tat ... Suche nach Spalten mit text[] type - das ist häufiger, also ist es ziemlich einfach, etwas herauszufinden. Bitte schauen Sie sich dieses Beispielprojekt an: Ссылка

    
Michał Zaborowski 10.04.2016 11:23
quelle

Tags und Links