У меня есть этот класс
@Entity
@Table(name = "DB.APPL_SESSION")
@AttributeOverrides({@AttributeOverride(name = "id", column = @Column(name = "APPL_SESSION_ID"))})
@SequenceGenerator(name = "TableSequence", sequenceName = "DB.APPL_SESSION_SQ")
public class AiSession{
@Formula("(select sum(nvl(budg.AMT_OV,budg.AMT)) from DB.BUDGET budg where budg.APPL_SESSION_ID = APPL_SESSION_ID)")
private LocalDate realSessionStartDate;
В приведенной выше формуле я работал с объектом DB.BUDGET и с текущим идентификатором объекта (APPL_SESSION_ID). Но теперь я хотел работать только со следующей переменной-членом (StartDate), которая находится в классе AidApplicantYearSession
@Basic
@Temporal(TemporalType.DATE)
@Column(name = "START_OV_DT")
private Date overrideStartDate;
Как мне написать формулу, похожую на приведенную выше, но использующую только переменную-член объекта? Я придумал
@Formula("(select START_OV_DT from DB.APPL_SESSION)")
Это правильный путь? Логика для двух формул полностью различна.