Код: Выделить всё
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;
}
}
Поэтому я соответствующим образом изменил свой код:
Код: Выделить всё
@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;
}
}
Код: Выделить всё
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); }
}
- Сохраните явную инициализацию id с помощью UUID.randomUUID(). Это, вероятно, сработает, но я бы предпочел вместо этого использовать аннотацию @GeneratedValue.
- Прекратите использовать идентификаторы в коде и используйте некоторые другие идентификаторы объектов, например фамилию пользователя.
Подробнее здесь: https://stackoverflow.com/questions/798 ... del-to-jpa
Мобильная версия