получить размер списка в собственности - PullRequest
2 голосов
/ 23 февраля 2010

У меня есть класс A, у которого есть список элементов B.

В моем классе А я хотел бы добавить:

int size;

, которое будет оцениваться с количеством элементов B. Поэтому, когда я позвоню myA.getSize(), я получу это.

Можно ли отобразить запрос подсчета с одним свойством в отображении гибернации?

Я не хочу загружать список, поэтому я хотел бы добавить свойство размера.

Ответы [ 2 ]

3 голосов
/ 23 февраля 2010

Можно ли отобразить запрос подсчета с одним свойством в отображении гибернации?

Да, используйте формулу :

<property name="size" type="integer"
formula="( select count(a.getBs) from A a where a.id = aid )">
</property>

Дополнительные примеры в Пример: различные сопоставления .

1 голос
/ 23 февраля 2010

Другой подход заключается в использовании lazy = extra в коллекции. Это едва упоминается в справочной документации и объясняется далее здесь .

Используйте lazy = "extra" в коллекциях для «умное» поведение коллекции, т.е. операции сбора, такие как size (), Содержит (), получить () и т. д. не триггер инициализация коллекции. Это разумно только для очень больших коллекции.

...