У меня есть этот код. Я должен сделать уникальный номер поля с автоматическим приращением. Этот код ничего мне не дает. Когда я пытался сделать персистирование в отладке, он выдает мне значение null
в поле number
. Я попытался выполнить это в инструменте запроса к базе данных, все работает нормально. Что не так?
Моя целевая сущность:
@Entity
@Table(schema = "public")
public class Policeman implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
@Formula(value = "(select max(student_id) from student)")//+1
private Long number;
@Column
private String fam;
@Column
private String name;
@Column
private String otch;
}
Ученическая сущность:
@Entity
@Table(name="student", schema = "public")
public class Student extends Human implements Serializable {
@Id
@Column(name="student_id")
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@ManyToOne(fetch = FetchType.EAGER,cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.DETACH})
@JoinColumn(name="fk_groups")
private Group gruppa;
}
Я опустил сеттеры, геттеры и конструкторы.