Никак не могу разобраться в механике написания функции и триггера к нему в базе данных
детали такие:
сущность, в которой должно происходить автомт смета значения поля, в зависимости от условия в другой сущности
ПОЛУЧАТЕЛЬ УСЛОВИЯ
@Entity
class Employee {
.....
@Column(name = "employee_status")
private EmployeeStatusENUM employeeStatusENUM;
(0="действующий", 1="в отпуске", 2=закрыт" --- 0 и 2 задаются через поле в html,
а 1 только автоматом по условию из сущности Vocation
.....
@OneToMany(mappedBy = "employee")
private List vocationList = new ArrayList<>();
(график отпусков, коллекция т.к. годовой отпуск делить можно на несколько частей)
getters, setters...
}
ПОСТАВЩИК УСЛОВИЯ
@Entity
class Vocation {
.....
@Column(name = "date_start")
private LocalDate startOfVocation;
(дата начала отпуска, задается через поле в html)
@Column(name = "days")
private Integer daysOfVocation;
(кол-во дней отпуска, задается через поле в html)
@Column(name = "date_end")
private LocalDate endOfVocation;
(дата окончания отпуска, задается через setter в контроллере, перед сохранением (созданием) новой сущности,
*vocation.setEndOfVocation(vocation.getStartOfVocation().plusDays(vocation.getDaysOfVocation()));*
хотя и это поле можно наверно через триггер заполнять, но не через html, таково указание.
данную сущность Vocation созданную для Employee обновлять нельзя, только создать и удалить)
@ManyToOne
@JoinColumn(name = "employee_id")
private Employee employee;
getters, setters...
}
условие задания employeeStatusENUM = 1 следующее:
если текущая дата находится в диапазоне дат отпуска (вкл день начала и конца)
статус с 0 на 1 и 1 на 0 должно происходить автоматически
примеры кусочков таблиц