Получение меньшего количества столбцов с в спящем режиме

У меня есть таблица с 11 столбцами, но я должен получить только 2 из них в моем приложении, я использую комбинацию ПРУЖИНЫ/БЫТЬ В СПЯЩЕМ РЕЖИМЕ/ДАО. На данный момент у меня есть доменный класс, который включает все 11 полей и отображающийся файл, который отображает все 11 столбцов в таблице. Как делают я использую, получают всего 2 из них не все?

5
задан Pascal Thivent 9 May 2010 в 13:41
поделиться

3 ответа

Либо:

  1. Использовать прогнозы - Pro: добавлять нечего - Con: не типизировано (результат - Список строк, где каждая строка является Object []) :

     выберите f.foo, f.bar из FatEntity f 
     
  2. Используйте выражение конструктора в предложении SELECT (указанный класс не обязательно должен быть сущностью или отображаться в базе данных) - Pro: безопасное решение - Con: больше классов, если вы повторно не используете FatEntity в качестве держателя, и в этом случае многие поля будут null :

     выберите новый com.acme.FatEntityDetails (f .id, f.foo, f.bar) из FatEntity f 
     

    Обратите внимание, что если имя класса сущности указано в предложении SELECT NEW , результирующие экземпляры сущности находятся в новое состояние (без постоянного идентификатора).

  3. Используйте другую сущность, отображенную в той же таблице, только с обязательными полями - Pro: это реальная сущность, которую вы можете изменять и обновлять - Con: Больше классов.

     от LightEntity 
     

Основные различия между №2 и №3 заключаются в следующем:

  • 2 вообще не требует, чтобы владелец был сущностью.

  • держатель в # 2 может быть объектом, отображенным в другой таблице.
  • Если # 2 возвращает сущности, они находятся в новом состоянии (это может быть проблемой или нет).
11
ответ дан 18 December 2019 в 08:27
поделиться

Попробуйте:

SELECT myEntity.one, myEntity.two FROM MyEntity myEntity

Вы даже можете сделать:

SELECT new MyEntityDescription(myEntity.one, myEntity.two) FROM MyEntity myEntity

, чтобы получить список описаний сущностей.

6
ответ дан 18 December 2019 в 08:27
поделиться

Если вам никогда не нужно больше, чем эти 2 столбца таблицы, вы можете изменить отображение гибернации, чтобы сопоставить только эти 2 столбца с классом сущности. Сопоставляйте только те столбцы таблицы, к которым вы хотите получить доступ в своем приложении. Имейте в виду, что ограничения базы данных на «игнорируемые» столбцы могут быть нарушены, например, ненулевые ограничения, внешние ключи или уникальные ограничения.

2
ответ дан 18 December 2019 в 08:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: