In meiner Spring MVC/JPA-Anwendung habe ich Benutzer- und Abteilungsentitäten in Bezug auf ihre Datenbanktabellen definiert. In der Regel können viele Benutzer zu einer Abteilung gehören, so habe ich die folgenden in meinem BenutzerklasseZuordnen geschachtelter Objekt-IDs im Frühling JPA
@Entity(name = "USER")
public class User {
@Id
@Column(name = "Username")
private String username;
@ManyToOne
@JoinColumn(name = "Department")
private Department department;
}
Wenn es Zeit ist, ich einen neuen Benutzer speichern muss assoziieren den Benutzer mit einer ID Abteilung
User
username | BobbySurfs2020
departmentId | 43
muss ich brauchen ein zusätzliches departmentId
Feld auf meinem Benutzerobjekt definiert haben nur diese Assoziation zu machen, oder kann ich irgendwie das eingebettete Abteilung Objekt verwenden setDepartment()
diese ID über meine Setter zu setzen?
Update/Weitere Gedanken:
Ist es überhaupt notwendig Department
im User
Objekt verschachtelt zu haben wie ich hier habe? Ich denke, dass es mehr Speicher aufnehmen würde, um einen Department
für jeden Benutzer zu speichern, den ich abhole, als es nur die Department
IDs zuordnen würde. Auf diese Weise konnte ich, wenn ich zu jeder Zeit eine Abteilungsinfo brauchte, einfach nach der ID suchen, die dem Benutzer zugeordnet ist. Gedanken?
Vielen Dank!
nicht einfach departmanId in Benutzertabelle in db hinzufügen danach nur über Namen holen departman und dann auf Benutzer eingestellt departman und speichern Sie es auch Joincolumn ändern (departman) mit joincolumn (departmanid) –
Danke @mithatkonuk. Ich denke auch, dass es notwendig sein könnte, "Abteilung" überhaupt zu speichern und die ID stattdessen zu verwenden –
Thats wegen der Beziehung, die Sie gerade departman geben, die in db so gespeichert wird, wie Sie komplizierten Prozess wegbleiben können, können Sie auch Identifikation in verwenden Benutzerklasse zu setzen und zu speichern kann auch sein, aber ich schlage Ihnen vor, auf diese Weise wird mehr cool sein –