Spring Data: Wie kann ich das Datenmodell richtig definieren?

L

lam_tr

Top Contributor
Hallo zusammen,

ich habe hier ein Spring Boot Anwendung zur Ticketverwaltung am Laufen. Bisher ging es ganz gut bis ich eine Liste von Attachment ergänzt habe. Jetzt bekomme ich folgende Fehlermeldung.

Caused by: org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags: [Ticket.referencedTickets, Ticket.attachments]

Java:
@Entity
public class Ticket extends BaseEntity {

    @OneToOne
    private User owner;

    @OneToOne
    private User author;

    @ManyToOne
    @JoinColumn(name = "project_id", nullable = false)
    private Project project;

    @Lob
    private String description;
    private String component;
    private String type;
    private String result;
    private String resultVariant;
    private int definitionOfDone;
    private TicketStatus status;
    private TicketPriority priority;

    @ManyToMany(fetch = FetchType.EAGER)
    private List<Ticket> referencedTickets = new ArrayList<>();

    @OneToMany(mappedBy = "ticket", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    private List<Attachment> attachments = new ArrayList<>();
    
    ...
}

Was mache ich an der Stelle falsch?

Viele grüße
lam
 
L

lam_tr

Top Contributor
Das FetchType.EAGER an beiden Listen.
Die Fehlermeldung sagt, dass das nicht geht. Hibernate muss effektiv hier mehrere SQL-Queries absetzen, du verbietest es ihm aber dadurch, dass du beide Listen als earger fetched markierst.
und wenn ich bei attachments anstatt EAGER auf LAZY mache, wann wird diese Querie ausgeführt.

Ich benötige sozusagen, sobald das Object Ticket geladen wird, sollen references und attachments vorhanden sein.
 
L

lam_tr

Top Contributor
Das erste Mal, wenn du auf Elemente der Liste zugreifen möchtest (per Index oder über Iteration).
Jetzt habe ich das Datenmodell so angepasst

Java:
    @ManyToMany(fetch = FetchType.LAZY)
    private List<Ticket> referencedTickets;

    @OneToMany(mappedBy = "ticket", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private List<Attachment> attachments;

Wenn ich referencedTickets hole, bekomme ich folgende Meldung

Java:
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role Ticket.referencedTickets, could not initialize proxy - no Session

Beim Holen des ersten Tickets von der Liste, erscheint die Fehlermeldung.
Java:
ticket.getReferencedTickets().get(0);
ticket.getReferencedTickets();

So würde es ach nicht gehen oder?
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Caused by: org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags: [Ticket.referencedTickets, Ticket.attachments]
Du nutzt Listen, und keine Sets. Ersetz die List einfach durch Set, dann sollte das auch mit EAGER klappen.

Wenn ich referencedTickets hole, bekomme ich folgende Meldung

Java:
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role Ticket.referencedTickets, could not initialize proxy - no Session
Du befindest dich beim Benutzen der Liste auserhalb einer Transaktion, je nachdem was du machst solltest du entweder Transaktions-Grenzen passend setzen oder das auf einfache "DTOs" mappen oder das Laden innerhalb einer Transaktion erzwingen, indem du die Liste benutzt (in absteigender Präferenz, wobei es ein bisschen auf den Kontext ankommt)
 
T

thecain

Top Contributor
FetchType.EAGER löst zwar vermeintlich viele Probleme, ist aber oftmals eine schlechte Idee. Beim Entwickeln mag das noch nicht auffallen, wenn die Datenbank aus 10 Zeilen Testdaten besteht. In der produktiven Applikation treten dann aber oft Performance Probleme auf.

 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Spring Data Einträge von User zahlen und auflisten Frameworks - Spring, Play, Blade, Vaadin & Co 7
S Spring Data Repository delete bulk Frameworks - Spring, Play, Blade, Vaadin & Co 3
R Spring Data: Hibernate liest nicht alle Ebenen Frameworks - Spring, Play, Blade, Vaadin & Co 5
L Spring Data: Detached Entity passed to persist Fehler Frameworks - Spring, Play, Blade, Vaadin & Co 6
L Spring Data: Multiple representations of the same entity Frameworks - Spring, Play, Blade, Vaadin & Co 14
S Spring Data data.sql SQL Insert mit single quote Frameworks - Spring, Play, Blade, Vaadin & Co 4
S Spring Data Hibernate mehrfache Suchkriterien Frameworks - Spring, Play, Blade, Vaadin & Co 5
J Spring data JPA Query Frameworks - Spring, Play, Blade, Vaadin & Co 2
G Spring-Boot und Spring Data Programmstart zu langsam Frameworks - Spring, Play, Blade, Vaadin & Co 21
S Spring Data: Lazy Fetch mit Self-Join. Frameworks - Spring, Play, Blade, Vaadin & Co 1
S Spring Data JPA - Repositories werden nicht injected Frameworks - Spring, Play, Blade, Vaadin & Co 2
X spring-data, mongodb und Mapping Frameworks - Spring, Play, Blade, Vaadin & Co 1
D spring data jpa: Wie kann man das Repository Interface in 2 Lese/Schreibe Interfaces aufteilen? Frameworks - Spring, Play, Blade, Vaadin & Co 1
D [InvalidDataAccessApiUsageException] Spring Data JPA / Hibernate Frameworks - Spring, Play, Blade, Vaadin & Co 1
NicoDeluxe Spring Boot Mapping null bei GET Aufruf Frameworks - Spring, Play, Blade, Vaadin & Co 8
NicoDeluxe Buchempfehlung Spring Security Frameworks - Spring, Play, Blade, Vaadin & Co 17
LesterBurnham Spring, Config Server, mehrere Gitlab Repos für Konfiguration - best practices Frameworks - Spring, Play, Blade, Vaadin & Co 1
NicoDeluxe Spring Boot Test mit Junit Frameworks - Spring, Play, Blade, Vaadin & Co 8
L Spring Thymeleaf Datatables Daten editieren? Frameworks - Spring, Play, Blade, Vaadin & Co 0
J Spring Boot - Reactor Frameworks - Spring, Play, Blade, Vaadin & Co 1
L Spring Boot, H2 und Restschnittstelle synchonisation mit Client Frameworks - Spring, Play, Blade, Vaadin & Co 10
TonioTec Spring Boot Datenbankabfrage Frameworks - Spring, Play, Blade, Vaadin & Co 7
NicoDeluxe Spring Boot encoding Slash in URL Parameter Frameworks - Spring, Play, Blade, Vaadin & Co 7
S Spring Boot startet nicht Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring: Testen von unterschiedlichen application.properties Werten Frameworks - Spring, Play, Blade, Vaadin & Co 6
S Spring Boot -> War File | 404 in Tomcat Frameworks - Spring, Play, Blade, Vaadin & Co 20
A Eventhandling mit Spring REST API Frameworks - Spring, Play, Blade, Vaadin & Co 13
L Spring Boot Anwendung "automatisch" neustarten Frameworks - Spring, Play, Blade, Vaadin & Co 3
A Spring boot Frameworks - Spring, Play, Blade, Vaadin & Co 18
bueseb84 Unit Test mit Spring Boot - Service Autowired Frameworks - Spring, Play, Blade, Vaadin & Co 0
iman Spring Security Frameworks - Spring, Play, Blade, Vaadin & Co 13
S Spring Security deaktivieren Frameworks - Spring, Play, Blade, Vaadin & Co 10
NicoDeluxe DTO <> Entity Hibernate Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 28
W Projekt Bootstrap/Kotlin/Spring Framework Frameworks - Spring, Play, Blade, Vaadin & Co 0
W Kotlin / Spring Framework Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring MongoDB: Attribut in der Superklasse und @Indexed erst in der Subklasse Frameworks - Spring, Play, Blade, Vaadin & Co 5
NicoDeluxe Verständnisfrage DTO Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 19
NicoDeluxe Spring Boot Load Balancing Frameworks - Spring, Play, Blade, Vaadin & Co 5
S Spring: MongoDB Assoziation Frameworks - Spring, Play, Blade, Vaadin & Co 1
S Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 1
NicoDeluxe Spring Boot Threads Frameworks - Spring, Play, Blade, Vaadin & Co 6
F Server-Java-Spring Websockets Frameworks - Spring, Play, Blade, Vaadin & Co 6
S Spring Boot: Wert aus Config Datei ermitteln Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring Boot: Ein geschütztes Verzeichnis Frameworks - Spring, Play, Blade, Vaadin & Co 1
bueseb84 Probleme mit Spring Boot Docker und Bootstrap Frameworks - Spring, Play, Blade, Vaadin & Co 9
NicoDeluxe Spring Boot Eureka/Zuul Frameworks - Spring, Play, Blade, Vaadin & Co 0
F Redirect in einer Spring Boot WebApplication Frameworks - Spring, Play, Blade, Vaadin & Co 7
F spring apllication startet nicht, ports werden verwednet Frameworks - Spring, Play, Blade, Vaadin & Co 12
B Erstes Spring Boot Projekt: Gameserver-Manager Frameworks - Spring, Play, Blade, Vaadin & Co 5
B Spring Kurse von Baeldung Frameworks - Spring, Play, Blade, Vaadin & Co 6
Thallius Gibt es einen "Standard" Folder für Spring deployment auf Linux Servern? Frameworks - Spring, Play, Blade, Vaadin & Co 13
V Spring Boot, thymeleaf, Eingaben cashen oder per session speichern? Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Spring Boot Security Frameworks - Spring, Play, Blade, Vaadin & Co 3
S Spring Boot i18n Frameworks - Spring, Play, Blade, Vaadin & Co 28
bueseb84 Spring Boot : Update H2 Repository Frameworks - Spring, Play, Blade, Vaadin & Co 14
A Spring Boot/ OneToMany Relation Frameworks - Spring, Play, Blade, Vaadin & Co 29
S Spring: Eine Klasse am Anfang instanzieren Frameworks - Spring, Play, Blade, Vaadin & Co 5
S Spring Boot testen mit Service Klassen Frameworks - Spring, Play, Blade, Vaadin & Co 4
iman Controller in Spring 4,0 Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Spring JPA / Hibernate: save Methode arbeitet nicht Frameworks - Spring, Play, Blade, Vaadin & Co 2
Thallius Spring Backend Funktion mit Langzeit Requester Frameworks - Spring, Play, Blade, Vaadin & Co 2
F spring post null werte Frameworks - Spring, Play, Blade, Vaadin & Co 1
F Spring Webanwendung Datenbank Frameworks - Spring, Play, Blade, Vaadin & Co 47
L Controller Spring Boot mit Java Frameworks - Spring, Play, Blade, Vaadin & Co 20
J Spring Boot H2 Datbase Frameworks - Spring, Play, Blade, Vaadin & Co 2
A Spring Namenconvention Frameworks - Spring, Play, Blade, Vaadin & Co 4
J Spring Boot Thymleaf mit Java.Optional Frameworks - Spring, Play, Blade, Vaadin & Co 0
L JavaFX Anwendung mit Spring Boot und mehrere FXML Forms Frameworks - Spring, Play, Blade, Vaadin & Co 5
P Mit Maven (und Spring-boot) ein FatJAR und ein EAR bauen Frameworks - Spring, Play, Blade, Vaadin & Co 3
NicoDeluxe Spring Boot Basic Authentication langsam Frameworks - Spring, Play, Blade, Vaadin & Co 2
NicoDeluxe Start Stop Spring Boot Frameworks - Spring, Play, Blade, Vaadin & Co 4
H spring web Frameworks - Spring, Play, Blade, Vaadin & Co 26
H Spring Boot - Dependency Injection Frameworks - Spring, Play, Blade, Vaadin & Co 26
B Java Spring Boot - POM-Problem Frameworks - Spring, Play, Blade, Vaadin & Co 8
S Spring: Werte speichern über Requests hinwege ohne DB Frameworks - Spring, Play, Blade, Vaadin & Co 24
NicoDeluxe Spring Boot parallele Requests Frameworks - Spring, Play, Blade, Vaadin & Co 1
NicoDeluxe Spring Boot Resttemplate exchange XML Frameworks - Spring, Play, Blade, Vaadin & Co 6
S Root-Pfad zu meiner Spring Boot Application Frameworks - Spring, Play, Blade, Vaadin & Co 3
N MongoDB-Spring "Cannot use a complex object as a key value" Frameworks - Spring, Play, Blade, Vaadin & Co 0
NicoDeluxe Spring Boot Error Logging Frameworks - Spring, Play, Blade, Vaadin & Co 5
NicoDeluxe Spring Boot Transactions Frameworks - Spring, Play, Blade, Vaadin & Co 10
D Spring Boot auf virtuellen Server oder Cloud? Frameworks - Spring, Play, Blade, Vaadin & Co 4
R Nebenjob im Bereich JEE, Spring, Servlets, REST Frameworks - Spring, Play, Blade, Vaadin & Co 3
D AWS Server Spring Boot und Datenbank Frameworks - Spring, Play, Blade, Vaadin & Co 0
S Spring Boot: Eigene Config aufbauen Frameworks - Spring, Play, Blade, Vaadin & Co 6
S Spring MVC redirect Nachricht ohne erweiterung der URL Frameworks - Spring, Play, Blade, Vaadin & Co 5
B Spring Boot/Html-Content/Web-Server Frameworks - Spring, Play, Blade, Vaadin & Co 2
S Spring Boot - MVC - Error flushen Frameworks - Spring, Play, Blade, Vaadin & Co 0
K Spring Boot und RestFull Frameworks - Spring, Play, Blade, Vaadin & Co 3
A Spring ServerQueue Frameworks - Spring, Play, Blade, Vaadin & Co 0
A Spring Server Logging Frameworks - Spring, Play, Blade, Vaadin & Co 5
F Spring Boot Test Frameworks - Spring, Play, Blade, Vaadin & Co 14
D Datenbankanbindung mit Spring Frameworks - Spring, Play, Blade, Vaadin & Co 5
P Spring JPA Query zusammensetzen Frameworks - Spring, Play, Blade, Vaadin & Co 2
NicoDeluxe Spring Boot Microservices und Entitäten Frameworks - Spring, Play, Blade, Vaadin & Co 5
T Spring Thymeleaf Argumente Frameworks - Spring, Play, Blade, Vaadin & Co 9
N Spring Boot javax.mail Frameworks - Spring, Play, Blade, Vaadin & Co 2
B Spring tools security mit JSP Frameworks - Spring, Play, Blade, Vaadin & Co 6
NicoDeluxe Spring Boot: Logfiles wie organisieren? Frameworks - Spring, Play, Blade, Vaadin & Co 0
NicoDeluxe Spring Boot GET Frameworks - Spring, Play, Blade, Vaadin & Co 4

Ähnliche Java Themen

Anzeige

Neue Themen


Oben