Create the data model (Java) - POJO using JAXB
The data model identifies where the data comes from.
What is a data model?
A data model is the hierarchy of memory classes that represent the data for the report application. A data model consist of one or more classes. These memory classes are called POJO (plain old java objects). The data model is serialized (converted to XML) to be sent to the Genero Report Engine.
Creating a data model
- You can generate the data model using the Business Application Modeler. It creates the classes and populates the classes using SQL. In addition, the data schema is created.
- You can write the data model by hand. When you manually create a data model, you are responsible for the code that creates and populates the classes.
The data model in Genero Report Writer
- For generated applications, the Business Application Modeler creates a Data Model Diagram (.4rdj), a graphical representation of the data model. It is composed of one or more business records, which in turn represent the SQL queries that fetches the data.
- The Data Schema (.xsd) file is an XML schema file. It gives a tree view of the data model, written in XML.
- A set of classes is provided in the application source.
Feeding the data
If the data model is generated, the requisite SQL to feed the data model will have been created.
If the data model is handwritten, the code for feeding the data must also be handwritten, as discussed in the following topics:
- Feeding the report data from a database using SQL
- Feeding the report data from a data file
- Feeding the report data from an XML file
For an example of feeding the report data from a plain old java object (POJO) using JAXB, examine
OrderReportJava.java in the OrderReportJava demo application. Search for the method runFromJAXBObject
.
The class objects are created to hold the data, and the data is brought in one row at a time using
an iterator. When the program moves to the next row, the previous row is released from memory.
Ensure that the JAXB environment set is selected.