Ich verwende JPA und Hibernate, um eine Verbindung zu einer Tabelle herzustellen und Daten in die Tabelle einzufügen. Ich habe eine Tabelle sagen: Benutzer, der drei Spalten ID, Name und Adresse hat. Ich habe eine Entity-Klasse für das gleiche und um die Daten einzufügen benutze ich einfach das EntityManager-Objekt und behalte die Daten in der db, die für mich wie ein Zauber wirken.Überprüfen Sie vorhandene Werte in der Postgres-Tabelle, bevor Sie die Zeile einfügen
Jetzt habe ich ein Szenario, wo ich überprüfen möchte, ob die Werte, die ich persistiere, bereits existieren, wenn das der Fall ist, muss ich einen Fehler protokollieren. Derzeit lade ich die Zeilen manuell aus der Tabelle und überprüfe manuell, ob dieselben Werte existieren oder nicht, was ziemlich einfach für die Beispieltabelle (Benutzer) ist, die nur drei Spalten hat. Aber was, wenn ich einen Tisch mit 30 Spalten habe?
Kann ich die Daten manuell basierend auf einer Bedingung laden und nach anderen Spalten suchen oder gibt es einen besseren und einen kürzeren Weg dazu?
eine Tabellenbedingung verwenden, um doppelte Zeilen nicht zulassen. – Kayaman
+1 zu @Kayaman, Verwenden Sie die DB-Einschränkung. else sql/hql Abfrage ist die einzige Option. –
Suchen Sie die eindeutige Untergruppe Ihrer Tabellen und wenden Sie für jede eine Einschränkung an. - Um bei Ihrem Beispiel zu bleiben, nehmen wir an, wir haben eine "Benutzer" -Tabelle mit einer Reihe von Spalten. Es ist höchst unwahrscheinlich, dass Sie zwei separate Zeilen zulassen möchten, in denen die Spalte "email" identisch ist, aber sagen wir, die "favourite_color" ist anders. – pozs