JPA helps control the mapping of POJOs in database tables. It’s a type of persistence specification that is now part of the Java EE 5 spec. Here you will learn to:
- Configure a JPA project
- Reverse engineer entities and DAOS from database
- Use advanced entity editing tools and Spring-JPA integration
This feature is available in MyEclipse.
1. JPA Project Configuration
JPA is a Hibernate-like persistence specification that became part of the Java EE 5 spec. JPA uses Java 5 annotations to control how plain Java classes (POJOs) get mapped to database tables.
You can create a JPA-enabled project by creating any of the supported types of base projects, like a Java or Web project, and then adding JPA facets to that project from the MyEclipse menu. To add JPA facets, right-click the project, and select MyEclipse>Project Facets>Install JPA Facet from the menu. You can also add multiple facets to a project simultaneously by opening the Project Facets propety of the project.
Adding facet via project properties
MyEclipse provides support for the OpenJPA, Hibernate, and EclipseLink JPA providers.
Adding JPA facets
Associate your project with a database and schema for design-time tool support. The project in the image below is being associated with the database driver for the local MyEclipse Derby database.
Configuring the datasource
Instead of relying only on libraries shipped with MyEclipse, you can download libraries to include in your project. Click the Download icon to add a user library.
Downloading a user library
You can change a JPA project’s database driver association at any time using the Java Persistence properties page. To open this page, right-click the project, and select Properties from the menu. Expand MyEclipse>Project Facets, and select Java Persistence.
Java Persistence properties page
2. Reverse Engineering Entities and DAOs from Database
Right-click a JPA project, and select Generate Entities & DAOs from the menu. You are given an option to use either the MyEclipse reverse-engineering tools or the DALI entity generator. Making a select launches the respective JPA Reverse Engineering wizard.
Entity generation from JPA project
You can also generate entities by right-clicking a table in the DB Browser view.
Entity generation from DB table
The reverse engineering process is fully customizable. Using the JPA Reverse Engineering wizard you can choose the artifacts to generate and the database tables from which the artifacts are based.
Customize reverse engineering
MyEclipse can also generate DAOs with result pagination support for
findBy<property> queries. The generated result pagination API provides DAO clients fine-grained programmatic control to position to a specific row number of a result set and fetch n entities.
Following are several sample snippets of the code generated by the Reverse Engineering processor.
3. Advanced Entity Editing Tools
MyEclipse Java Persistence Perspective
The MyEclipse Java Persistence perspective provides an optimal editor and view layout for JPA-oriented tasks.
MyEclipse Persistence perspective
JPA Details View
The JPA Details view makes it easy to edit entity annotations.
JPA Details view
JPA Diagram Editor
The JPA diagram editor allows you to easily create new entities or edit entities in your existing JPA projects.
JPA diagram editor
JPA Annotation Table and Column Content Assist
Table content assist
JPA annotation column content assist
JPA Entity Validation
Errors in your mapping are detected and displayed in the editor and Problems view.
JPA validation errors shown in Java editor
The JPA Entity Validator can be enabled or disabled at the project level.
JPA Validation preferences
4. Advanced Spring-JPA Integration
Spring 2 Support
When adding JPA facets to a project that already has Spring facets or vice versa, you can choose advanced Spring-JPA support. This level of support enables JPA tools to work with your project’s Spring artifacts. The following image shows the Spring-JPA project configuration wizard.
Adding Spring capabilities
Select Spring-JPA support, your primary bean configuration file, and customize bean Ids and transaction support.
Configure Spring-JPA support
Reverse Engineering Entities and Spring DAOs from Database
For projects that are configured to support advanced Spring-JPA capabilities, in addition to generating Entity classes from a database schema, Spring-compatible DAOs can be generated. During the reverse-engineering process, the Spring application context file is updated with generated bean entries for each DOA class.
Generating Spring DAOs
Generated Spring application context file
Generated Spring DAO extends from Spring’s JpaDaoSupport