JPA und Hibernate werden zum Abrufen und Persisten von Entitäten verwendet. Es gibt eine User
Tabelle und sie enthält eine Country
, die in einer anderen Tabelle dargestellt wird.Automatisch vorhandene Entität in ManyToMany/ManyToOne-Beziehung (JPA) erneut verwenden
Ich möchte einen neuen Benutzer in User
Tabelle einfügen. Dieser neue Benutzer stammt aus dem Land, das bereits in die Tabelle Country
eingefügt wurde. Um dem neuen Benutzer das vorhandene Land zuzuweisen, konnte ich das Landobjekt aus der Datenbank abrufen und auf User
setzen - es funktioniert wie erwartet, es wird eine Beziehung zwischen Benutzer und dem vorhandenen Land erstellt, es werden keine neuen Zeilen in die Tabelle Country
eingefügt.
Ist es möglich, dasselbe Verhalten zu erhalten, ohne Country
Objekte aus der Datenbank abzurufen, nur basierend auf dem Wert, den ich auf das Country
Objekt in der JPA-Entität in Java festgelegt habe?
Zum Beispiel:
User user = new User("test user");
user.setCountry(new Country("USA"));
entityManager.persist(user);
Ich möchte JPA/Hibernate automatisch überprüfen, ob das Land, das Code USA ist (Code wird in einer Spalte in Land-Tabelle gespeichert und es ist einzigartig), die bereits in existiert die Datenbank. Wenn dies der Fall ist - verwenden Sie das vorhandene Land-Objekt, damit kein neuer Eintrag in der Datenbank erstellt wird, falls es nicht existiert - fügen Sie ein neues Land in die Tabelle Land ein.
Vielen Dank!