EclipseLink/DesignDocs/389090
Design Specification: JPA 2.1 Formalized DDL generation support
Document History
Date | Author | Version Description & Notes |
---|---|---|
05 September 2012 | Gordon Yorke | Initial Doc creation |
Project overview
In previous versions DDL generation was present in the specification but was not standardized and was not required. The next iteration of the Java Persistence API specification has added standardized provider DDL generation and made DDL generation a requirement.
Concepts
DDL Generation is the scripting or direct database execution of database object creation SQL (Create Table, Create Index, ...) from metadata or user supplied scripts. The specification defines many mapping artifacts (OneToOneMapping, JoinColumn, etc) that contribute metadata to allow the provider to generate the DDL to define the structure of the database objects.
Requirements
To implement the requirements of DDL generation and execution as defined in the specification. This includes but may not be limited to the Database objects:
- Columns for all mapping types
- Sequence Generators
- Constraints
- Indexes
- Entity tables
- Relationship tables
- Schema
Support reading and executing user packaged DDL scripts and the generation of DDL scripts. Support processing configured target database information Support for a DDL Generation connection to be provided by the application or the container.
Design Constraints
Design / Functionality
Testing
Existing tests should be verified to ensure they include tests for creation of those database objects listed in the requirements list and any others included as part of the specification. Any untested areas should have additional tests added. Tests to execute and generate DDL scripts Tests for identifying target databases correctly.
API
New properties and new API are present in the specification to support DDL generation. These should behave as specified in the specification.
GUI
Config files
Documentation
Work Required
- Metadata processing of new annotations w/ implementation in core
- approx 4 days
- Implement support for DDL script loading, execution and generation
- approx 3 days
- Implement handling of DDL generation connection
- approx 3 days
- Testing
- approx 6 days
Open Issues
This section lists the open issues that are still pending that must be decided prior to fully implementing this project's requirements.
Issue # | Owner | Description / Notes |
---|
Decisions
This section lists decisions made. These are intended to document the resolution of open issues or constraints added to the project that are important.
Issue # | Description / Notes | Decision |
---|---|---|
Future Considerations
During the research for this project the following items were identified as out of scope but are captured here as potential future enhancements. If agreed upon during the review process these should be logged in the bug system.