Мой боб Java имеет childCount свойство. Это свойство не отображается на столбце базы данных. Вместо этого это должно быть вычислено базой данных с a COUNT()
функция, воздействующая на соединение моего боба Java и его детей. Было бы еще лучше, если это свойство могло бы быть вычислено по требованию / "лениво", но это не обязательно.
В худшем варианте развития событий я могу установить свойство этого боба с HQL или Критериями API, но я предпочел бы не.
Быть в спящем режиме @Formula
аннотация может помочь, но я мог едва найти любую документацию.
Любая справка значительно ценится.Спасибо.
JPA не предлагает никакой поддержки производных свойств, поэтому вам придется использовать расширение, специфичное для провайдера. Как вы упомянули, @Formula
идеально подходит для этого при использовании Hibernate. Вы можете использовать фрагмент SQL:
@Formula("PRICE*1.155")
private float finalPrice;
Или даже сложные запросы к другим таблицам:
@Formula("(select min(o.creation_date) from Orders o where o.customer_id = id)")
private Date firstOrderDate;
Where id
is the id
of the current entity.
Стоит прочитать следующую статью в блоге: Производные свойства Hibernate - производительность и переносимость.
Без более подробной информации я не могу дать более точный ответ, но приведенная выше ссылка должна быть полезной.