I followed some tutorials as e.g.
http://www.vogella.de/articles/JavaPersistenceAPI/article.html to
setup a Java/JPA project.
I am using a MySQL 5 database together with the MySQLConnector v5.0.4
and EclipseLink 1.0.2.
I defined a set of entities. Automatic creation of DDL in the database
works. I successfully create some entries in the tables
programatically, starting with a JUnit4 Test.
The problem is, that everytime I create a new entity manager all
mapped tables are truncated. Thus, every query on a new entity manager
returns an empty result.
The test case:
@Before
public void setUp() throws Exception {
emf = Persistence.createEntityManagerFactory("TestJPA");
}
@Test
public void doNothing() {
emf.createEntityManager().close();
}
@After
public void tearDown() {
emf.close();
}
results in an empty database.
I am afraid, I have some kind of fundamental misunderstanding. The
vogella tutorial and all others that I have found do a setup (@Before)
that create all queried data in advance, but do not explain why. How
can I read peristed data?
This is my persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="TestJPA" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>model.Family</class>
<class>model.Job</class>
<class>model.Person</class>
<class>model.OfficeJob</class>
<class>model.OutdoorJob</class>
<class>model.Animal</class>
<properties>
<property name="eclipselink.jdbc.url"
value="jdbc:mysql://localhost:3306/test01"/>
<property name="eclipselink.jdbc.user" value="root"/>
<property name="eclipselink.jdbc.password" value=""/>
<property name="eclipselink.jdbc.driver"
value="com.mysql.jdbc.Driver"/>
<property name="eclipselink.ddl-generation"
value="drop-and-create-tables" />
<property name="eclipselink.ddl-generation.output-mode"
value="database" />
<property name="eclipselink.target-database" value="MySQL4"/>
</properties>
</persistence-unit>
</persistence>
Thank you for your help in advance,
Andi