Wiele razy używam @Formula w moich jednostkach. Ale zawsze była to prosta kwerenda lub procedura składowana z parametrem, który mogę pobrać jako złożony z tabeli. Teraz potrzebuję użyć pewnej właściwości z powiązanego obiektu. Ale widzę wyjątek, gdy próbuję uzyskać obiekt z DB. Zobacz przykład poniżej:Jak korzystać z pola encji w Hibernate @Formula
@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
}
Jak powinienem użyć encji prop w @Formula. Nie chcę napisać coś podobnego
select d.ministry.id from Department d ...
Dziękujemy za odpowiedź. Ale zostałem napisany na złym przykładzie. Zadaniem jest pobranie parametrów powiązanych obiektów. Zaktualizowałem przykład. Z góry dziękuję. – Dmitry