HQL-запрос минус некоторые конкретные поля - PullRequest
4 голосов
/ 02 марта 2011

С помощью HQL-запроса можно получить все поля, КРОМЕ одного.

Что-то вроде:

session.get(entityClass, id).withoutThisField(fieldNotDesired)

Пример : у меня есть класс Picture(int id, String name , byte[] file).

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

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

Я знаю, если поле является BLOB-объектом, оно будет извлечено только в случае необходимости. Это не мой случай.
И инструментарий байт-кода для уточнения поля lazy=true не работает, у меня есть странные исключения.

Заранее спасибо.

1 Ответ

1 голос
/ 24 мая 2011

Я бы предложил использовать унаследованный класс.

Пусть PictureFile будет подклассом Picture, который добавляет только один файл поля.

В вашем примере вы можете просто получить изображение.Когда вам нужно файл blob, получите PictureFile.

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

...