Как установить значение по умолчанию Dynami c для поля класса сущности с помощью Hibernate? - PullRequest
0 голосов
/ 28 апреля 2020

Мне нужно динамически распределять значение во время создания объекта, выбирая значение из связанной таблицы. Рассмотрим сценарий ниже, где у меня есть два класса - Student & Batch. При добавлении новой записи в таблицу Student во время создания, учитывая тот факт, что в данный момент активным может быть только один пакет, мне нужно установить текущий активный пакет, проверив поле «Active» из таблицы Batch. И это должно быть сделано динамически. Пожалуйста, предложите мне лучшее использование hibernate для этого.

Примечание. Поскольку это необходимо сделать без использования соответствующего класса сервиса и репозитория, ищите использование hibernate

* 1006. * Студент. java
public class Student {

@Id
@GeneratedValue(Strategy = GeneratedType.Identity)
private Integer id;

private String name;

private Date DOB;

@ManyToOne
@JoinColumn(name = "Student_Batch", nullable=false)
private Batch allocatedBatch;

.....Getter and setter methods....
}

Пакет. java

public class Batch {

@Id
@GeneratedValue(Strategy = GeneratedType.Identity)
private Integer id;

private String name;

private Date startDate;

 @ColumnDefault("false")
private boolean Active;

@OneToMany(mappedBy = "allocatedBatch", cascade = {CascadeType.PERSIST, CascadeType.REMOVE)
private Student student;

.....Getter and setter methods....
}

1 Ответ

0 голосов
/ 11 мая 2020

Я не знаю ваших обстоятельств, но, похоже, вам, возможно, придется переосмыслить свой дизайн. Тем не менее, я думаю, что использование приемника событий или Interceptor может помочь. (Если я правильно понимаю)

Ознакомьтесь с @PrePersist аннотацией. JPA Обратный звонок

...