hallo zusammen,
in meiner Anwendung habe ich zwei Entitäte wie im Folgendes definiert
public class JpaCompany implements ... {
@OneToMany(fetch = FetchType.LAZY, cascade=CascadeType.ALL)
@JoinColumn(name="company_id", referencedColumnName = "entity_id", nullable = true)
protected List<JpaOrder> orders;
public List<Order> getOrders() {
return this.orders;
}
@Override
public void setOrders(List<Order> orders) {
if(this.orders == null) {
this.orders = new ArrayList<JpaOrder>();
}
...........
}
}
nun erzeuge ich im Frontend eine Entität Order und persistiere die. Im Frontend habe ich bereits eine attached Entität von Company. Die neue persistierte Order wird mittels setOrders() in der Company gespeichert. Anschließend mache ich ein update für Company. Normalerweise muss die Spalte "company_id" mit der companyId aktualisiert werden.
Ich habe entdeckt, dass wenn der FetchType = LAZY ist, wird diese Spalte nicht aktualisiert. Wenn ich den FetchType auf EAGER ändere, wird die companyID in der Spalte gespeichert.
Wie kann ich dieses Problem lösen. Ich möchte nicht alle Orders im Frontend laden. Wenn der Company eine Mio. Orders enthält, wird dann unglaubliche Speicher beim Laden gebraucht.
Vielen Dank im Voraus!
in meiner Anwendung habe ich zwei Entitäte wie im Folgendes definiert
public class JpaCompany implements ... {
@OneToMany(fetch = FetchType.LAZY, cascade=CascadeType.ALL)
@JoinColumn(name="company_id", referencedColumnName = "entity_id", nullable = true)
protected List<JpaOrder> orders;
public List<Order> getOrders() {
return this.orders;
}
@Override
public void setOrders(List<Order> orders) {
if(this.orders == null) {
this.orders = new ArrayList<JpaOrder>();
}
...........
}
}
nun erzeuge ich im Frontend eine Entität Order und persistiere die. Im Frontend habe ich bereits eine attached Entität von Company. Die neue persistierte Order wird mittels setOrders() in der Company gespeichert. Anschließend mache ich ein update für Company. Normalerweise muss die Spalte "company_id" mit der companyId aktualisiert werden.
Ich habe entdeckt, dass wenn der FetchType = LAZY ist, wird diese Spalte nicht aktualisiert. Wenn ich den FetchType auf EAGER ändere, wird die companyID in der Spalte gespeichert.
Wie kann ich dieses Problem lösen. Ich möchte nicht alle Orders im Frontend laden. Wenn der Company eine Mio. Orders enthält, wird dann unglaubliche Speicher beim Laden gebraucht.
Vielen Dank im Voraus!
Zuletzt bearbeitet: