Ich habe eine @Entity
A, die eine andere Entität B verweist, die OneToOne-Beziehung verwendet. Ich hole Einheit Eine Feder Daten JpaRepository mitSpring Data JPA erhalten Entitäts-Fremdschlüssel ohne die abhängige Entity Lazy Load zu verursachen
A a = aRepository.findById(1);
int b_id = a.getB().getId();
Wie man sehen kann ich ID der B Tabelle abfragen müssen, aber um das zu tun, ich brauche Getter der B-Tabelle zu nennen, die faul verursachen - Laden der B-Tabelle selbst Ich möchte das nicht machen, weil das einzige, was ich brauche, die get ID ist, sonst nichts, und diese ID ist in der ersten A Tabelle vorhanden.
Gibt es einen Trick, der mir hilft, ID der abhängigen Tabelle zu erhalten, ohne neue Abfrage auszulösen?
UPDATE
@Entity
class A {
@Id
private Long id;
@OneToOne
private B b;
}
@Entity
class {
@Id
private Long id;
}
Sie fragen keine Tabellen ab. Sie fragen Objekte ab. Sie können benutzerdefinierte Abfragen definieren – Jens
@SergeiLedvanov Ich glaube, in Ihren Entitätsklassen verwenden Sie Hibernate-Annotationen für das Feld/die Eigenschaft. Wenn Sie also die Methode getId() wie in a.getB(). GetId() für die Entität aufrufen, wird der Proxy (des Gruppenobjekts) initialisiert und die Datenbank abgefragt. Wenn Sie nur die ID der Entität abrufen möchten, können Sie die Hibernate-Annotationen in die Getter-Methoden einfügen. Dies initialisiert den Proxy (B-Objekt) nicht, um die ID zurückzugeben. Kannst du es mit Getter-Annotationen versuchen? –