Skip to main content

[jpa-spec issues] [JIRA] Created: (JPA_SPEC-53) Schema generation with existing EMF

  • From: "Christian Bauer (JIRA)" < >
  • To:
  • Subject: [jpa-spec issues] [JIRA] Created: (JPA_SPEC-53) Schema generation with existing EMF
  • Date: Tue, 26 Mar 2013 05:22:53 +0000 (GMT+00:00)
  • Auto-submitted: auto-generated

Schema generation with existing EMF
-----------------------------------

                 Key: JPA_SPEC-53
                 URL: http://java.net/jira/browse/JPA_SPEC-53
             Project: jpa-spec
          Issue Type: Improvement
            Reporter: Christian Bauer
            Priority: Minor


I've been running into a conceptual issue with schema generation in JPA 2.1 
and how unit tests are typically organized.

Let's say you want a clean database for every unit test method. I prefer to 
create the schema in the database before every test method, and then drop it 
after the test method completes.

I have a single EntityManagerFactory for the whole test class, it can be 
shared by every test method. This is possible with the Hibernate API, the 
schema generator uses an existing EMF configuration to produce the 
create/drop scripts.

With the static Persistence.generateSchema() in 2.1 this approach doesn't 
work. Calling generateSchema() internally builds a new EMF every time.

One of the problems is that you get new automatically generated foreign key 
names every time you call generateSchema(). The "drop" action therefore 
always fails, unless you define all foreign key names in your metadata. There 
could be other automatically generated artifact names, so the "drop" action 
in general, if called from a static context, is not useful during development.

The current solution then is to specify "drop-and-create" and to build and 
close an EMF for every unit test method. This means starting and stopping the 
persistence provider for every test method, slowing down test runs 
significantly.

A better solution would be an additional Persistence.generateSchema(EMF, 
properties) method that accepts an existing EMF and some "override" 
properties.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://java.net/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


[jpa-spec issues] [JIRA] Created: (JPA_SPEC-53) Schema generation with existing EMF

Christian Bauer (JIRA) 03/26/2013
 
 
Close
loading
Please Confirm
Close