如何使用@Formula(在Hibernate中)引用相同的(当前)对象

Wow*_*Bow 5 orm hibernate formula

我有这门课

@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;
Run Code Online (Sandbox Code Playgroud)

在上面的公式中,我使用DB.BUDGET对象和当前对象id(APPL_SESSION_ID).但现在我只想使用AidApplicantYearSession类中的下一个成员变量(StartDate)

@Basic
@Temporal(TemporalType.DATE)
@Column(name = "START_OV_DT")
private Date overrideStartDate;
Run Code Online (Sandbox Code Playgroud)

我应该如何编写一个看起来像上面的公式,但只使用对象的成员变量?我想出来了

 @Formula("(select START_OV_DT from DB.APPL_SESSION)")
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?这两个公式的逻辑完全不同.

axt*_*avt 5

@Formula只是插入到SQL select子句中,以便您可以在其中使用列名:

@Formula("START_OV_DT")
Run Code Online (Sandbox Code Playgroud)

也可以看看: