due to performance issues we maintain a separate table that pools information from the data model, that in regular circumstances takes at a single record level, several seconds to produce (several tables and joins involved). Therefore arranging a report on that segment of our data domain, takes very long, hence leveraging the option of creating through a separate batch operation, the querying and storing of that information in a single table so it can be retrieved with low latency.
My whole model is re-implemented in CUBA, but not this table, and wouldn’t like to need to migrate it, since its only purpose is the above mentioned.
Can I build screens to edit/delete rows for that table? What is the suggested approach?
Is there any CUBA facility for that?
I believe I should be able to dynamically generate the components and populate them, based all on a native query result list. But before I approach it, can anybody suggest anyother solution?
Non-persistent – instances exist only in memory, or are stored somewhere via different mechanisms
Create a non-persistent entity
Generate standard screens using that entity
Create a service and implement methods to load and save data for this entity
Implement a load delegate (using the load method implemented in the service)
Implement a commit delegate (using the save method implemented in the service)
P.S.: you can create a database view and use it to generate model (i.e.: the non-persistent entity). It would be easier because you’ll only need to implement the commit delegate.
@peterson.br pointed the right direction towards solving your problem. I would also add a small bit about using MyBatis, which is integrated into the platform - Integration with MyBatis - CUBA Platform. Developer’s Manual. It will help you to implement custom SQL queries, map the result to non-persistent entities and modify the records later on. This may help you to implement your service for data manipulation.