Ich beginne ein Projekt mit Spring MVC und Hibernate. Ich bin besorgt über Best Practices im Zusammenhang mit der Klassenzusammensetzung. Angenommen, ich hätte eine Klasse namens Benutzer mit einer ORM-Technologie wie Hibernate.Java Spring MVC + Hibernate Klassenzusammensetzung
Ich bin mir nicht sicher, ob ich alles im Zusammenhang mit der User-Entität innerhalb der Benutzerklasse enthalten sollte. Ich weiß, dass Hibernate automatisch die Leistung durch Lazy Loading verbessert, so dass nicht alle Instanzvariablen abgerufen werden, wenn wir einen Benutzer abrufen. Ich habe jedoch das Gefühl, wenn wir zu viele Variablen in die User-Klasse aufnehmen, wird es sehr teuer, User-Objekte abzufragen.
Betrachten Sie dieses Beispiel:
@Entity
@Table(name = "Users")
public class User{
private String username;
private String password;
private long user_id;
private Collection<Transaction> transactions;
}
Hier werden die User-Klasse speichert eine Sammlung von Transaktionen. Jede Transaktion stellt einen Kauf dar, den der Nutzer auf der Website getätigt hat. Wir müssen jedoch keine Transaktionssammlung für jeden Benutzer speichern.
Stattdessen können wir eine Transaktionstabelle wie so machen:
@Entity
@Table(name = "UserTransactions)
public class Transaction{
private int user_id;
private int order_id;
private double amount_paid;
}
Mit dieser Transaktion Tabelle können wir noch jede Transaktion speichern jeder Benutzer gemacht hat.
Dies ist nur ein Beispiel, es gibt viel mehr Variablen, die nicht in der Benutzerklasse gespeichert werden müssen und können durch ihre eigene Tabelle dargestellt werden. Ich frage mich also, ob es einen Schaden für die Speicherung all dieser Variablen in der Benutzerklasse gibt, oder sollten wir vorsichtig sein und selektiv sein, was wir in die Benutzerklasse einbeziehen? Was wären die Vor-/Nachteile jedes Ansatzes?
Vielen Dank im Voraus!
Was möchten Sie fragen? Wie erstelle ich Beziehungen zwischen Ruhezustands-Entitäten? –