Oft verwende ich @Formula in meinen Entitäten. Aber es war immer eine einfache Abfrage oder eine gespeicherte Prozedur mit Parametern, die ich aus der Tabelle ablegen kann. Jetzt muss ich eine Eigenschaft von einem verwandten Objekt verwenden. Aber ich sehe Ausnahme, wenn Sie versuchen, ein Objekt von DB zu bekommen. Bitte beachten Sie ein Beispiel unterWie Entity-Feld in Hibernate @Formula verwenden
@Entity
@Table(name = "MINISTRY")
public class Ministry {
@Id
@Column(name = "ID")
private Long id;
@Column(name = "NAME")
private String name;
// unnecessary code
}
@Entity
@Table(name = "DEPARTMENT")
public class Department {
@Id
@Column(name = "ID")
private Long id;
@Column(name = "DEP_NAME")
private String departmentName;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "MINISTRY_ID")
private Ministry ministry;
// unnecessary code
}
@Entity
@Table(name = "EMPLOYEE")
public class Employee {
@Id
@Column(name = "ID")
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "DEPARTMENT_ID")
private Department department;
@Formula("test_package.calc_something(department.ministry.id)")
private BigDecimal someMetric;
// unnecessary code
}
Wie sollte ich Einheit prop in @Formula verwenden. Ich will nicht so etwas wie
select d.ministry.id from Department d ...
Vielen Dank für Ihre Antwort. Aber ich habe schlechtes Beispiel geschrieben. Aufgabe ist es, die Parameter der zugehörigen Objekte zu übernehmen. Ich habe das Beispiel aktualisiert. Danke im Voraus. – Dmitry