2017-09-16 1 views
0

Angenommen, ich habe Foo Einheit mit einem Feld mit @ManyToOne(fetch = FetchType.LAZY) annotiert. Normalerweise wird dieses Feld nicht benötigt, aber in einigen Abfragen benötigen wir alle Elemente mit allen zugehörigen Entitäten. Ich möchte Datenbank nicht einzeln abfragen, um verbundene Entitäten zu erhalten (n + 1 wählen Problem). Gibt es eine Möglichkeit, fetchType anzugeben? Etwas wie:Spring Jpa: Ändern FetchType für Entität

@Repository 
public interface FooRepository extends CrudRepository <Foo, String> { 
    List<Foo> findAll(FetchType fetchType); 
} 

Antwort

1
@OneToMany(fetch = FetchType.LAZY) 
List<Address> address; 

Angenommen, Sie über Code. Sie können n + 1 Problem vermeiden, wenn Sie address.size() tun

getAdress().size() 

so dass Hibernate wird statt Laden nacheinander auf einmal alle Elemente laden.

+0

Aber '@ ManyToOne' hat keinen Typ' List', du hast ihn mit '@ OneToMany' verwechselt – ipoteka

Verwandte Themen