Code: Select all
public abstract class User {
private UUID id;
private UserInformation info;
public User(String surname, String name, String email) {
this.info = new UserInformation(surname, name, email);
this.id = UUID.randomUUID();
}
public UUID getId() {
return this.id;
}
public UserInformation getInfo() {
return this.info;
}
}
Ich habe daher meinen Code entsprechend geändert:
Code: Select all
@MappedSuperclass
public abstract class User {
@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
@Embedded private UserInformation info;
public User(String surname, String name, String email) {
this.info = new UserInformation(surname, name, email);
}
protected User() {
}
public UUID getId() {
return this.id;
}
public UserInformation getInfo() {
return this.info;
}
}
Code: Select all
public class GradeOutOfBoundsException extends Exception {
GradeOutOfBoundsException(int valueOfGrade, UUID studentId, String assignmentName) {
super( "Value:" + valueOfGrade + " out of 0-100 bounds assigned for student with id: " + studentId + " in module " + assignmentName); }
}
- Behalten Sie die explizite Initialisierung von id bei, indem Sie UUID.randomUUID() verwenden. Dies würde wahrscheinlich funktionieren, aber ich würde stattdessen lieber die Annotation @GeneratedValue verwenden.
- Verwenden Sie keine IDs mehr im Code und verwenden Sie stattdessen andere Bezeichner der Objekte wie den Nachnamen eines Benutzers.
Mobile version