Подтвердить что ты не робот

Отображение представления SQL в JPA Entity

В моем проекте разработки я использую JPA (hibernate) как технологию OR Mapping для доступа к базе данных. Иногда я сталкиваюсь с проблемами производительности и техническими трудностями, когда я сопоставляю таблицу DB с объектами напрямую для сложных отношений.

Я обнаружил, что обходным путем является отображение DB-представления в объекты JPA. Это упрощает кодирование, а иногда и производительность. Считаете ли вы, что это анти-шаблон использования JPA таким образом?

4b9b3361

Ответ 1

Это не обходной путь, а не анти-шаблон. Есть тема на сопоставление объектов JPA с представлениями SQL. Это дает вам достаточно информации о том, использовать этот метод или нет.

Лично я предпочитаю классы Java, и поэтому я использую выражение конструктора классов результатов. Он создает и заполняет объекты предоставленного класса на основе запроса результатов.

Вы можете просмотреть оба этих метода, которые повышают производительность и уменьшают сложность структуры.

Ответ 2

У меня возникла проблема со ссылкой JMelnik любезно предоставлено: Я создал сложный запрос в виде представления в Javadb, затем попытался перетащить представление в форму, но Netbeans не позволял мне его удалять (поэтому я не мог автозаписывать связанную таблицу. Я видел по этой ссылке я не только тот, кто испытал это.

Решение, которое сработало для меня:

Создать вид в db, для вашего сложного SQL с объединением

Создать сущность из базы данных в пакете сущностей и назовите ее xxxViewName

  • Убедитесь, что поле в объекте идентифицировано как ключ, добавив над ним "@Id".

Создайте запрос на сохранение Java в Navigator:

  • Убедитесь, что дизайн формы виден, затем щелкните правой кнопкой мыши "Другие компоненты" в Навигаторе и выберите "Добавить из палитры" > "Сохранение Java" > "Запрос"

  • Настройте запрос: НЕ используйте обычное "show xxxViewName" (что не удается, потому что JPA не поддерживает показ). Используйте Select w из xxxViewName w "

Создать результат сохранения Java-данных в Навигаторе:

  • Аналогично созданию запроса. Обязательно задайте параметры типа списка для

Привяжите JTable к списку.