Чтение данных из представлений базы данных (database view)

Привет всем!

Скажите, пожалуйста, какой способ рекомендуется для считывания данных, получаемых в результате запроса к представлениям БД? Можно ли для этого описать некую readonly-сущность и зачитывать данные, например, через EntityManager.createQuery() ?
В документации я что-то такого не нашел. Попробовал сделать это с помощью EmbeddedEntity, но cuba не хочет зачитывать эту сущность без родительской.
Попробовал также реализовать чтение через QueryRunner, но мне не понравилось, потому что нет встроенной пагинации, возникают сложности с передачей параметра в условие where property IN ?, опять же самому нужно мапить поля из ResultList в объект.

Да, вы можете свободно использовать view в качестве @Table для сущностей и загружать их из БД запросами, всё что не требует изменения записей в БД. А для view, у которых определены update/insert семантики, наверное и вставка может заработать.

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

Пометьте эту сущность аннотацией com.haulmont.cuba.core.global.DbView
Она специально создана для сущностей на основе представлений.

1 симпатия

Супер! Александр, спасибо!
Жаль, что про эту аннотацию DbView ничего не написано в руководстве разработчика.
Я только в начале изучения платформы CUBA и хотелось бы знать все источники информации по данному продукту. Может быть посоветуете, где ещё можно получать сведения помимо официального руководства?

Аннотация com.haulmont.cuba.core.global.DbView и соседняя com.haulmont.cuba.core.global.DdlGeneration были добавлены недавно для дизайнера сущностей, он их генерирует когда нужно. Документировать пока еще не успели.

Я завел тикет:

1 симпатия

Александр, спасибо!