В нашем проекте у нас есть "Ресторан" с почти 30 полями (некоторые из них имеют отношения с другими сущностями). Поэтому каждый раз, когда нам нужен объект "Ресторан" даже для нескольких полей, все остальные извлекаются. Это влияет на производительность. Итак, в файле HBM мы написали два класса, указывающие на один и тот же физический класс и ту же таблицу базы данных, как показано ниже.
=== restaurant.hbm.xml ===
<!-- Light Weight Version -->
<class name="com.raj.model.Restaurant" table="RESTAURANTS" entity-name="RestaurantLite"
dynamic-update="false" dynamic-insert="false">
<cache usage="read-only"/>
<!-- few basic properties and relationships -->
</class>
<!-- Restaurant -->
<class name="com.raj.model.Restaurant" table="RESTAURANTS" entity-name="Restaurant">
<!-- all properties and relationships -->
</class>
В одной из реализаций DAO мы используем критерии, которые берут "RestaurantLite" и возвращают список ресторанов, как показано ниже.
Criteria criteria = session.createCriteria("RestaurantLite");
// criteria related stuff
return new LinkedHashSet<Restaurant>(criteria.list());
Теперь мы хотим удалить все hbm файлы и использовать аннотации. Итак, как же можно сделать, используя аннотации для entites? Нужно ли создавать дополнительный класс "RestaurantLite"? Если тогда, как приведенные выше критерии возвращают объекты "Ресторан"