I followed your tutorial 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 additional 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. Your
tutorial and all others that I have found do a setup (@Before) that
creates all queried data in advance, but it is never explain why. How
can I read peristed data? Is this truncation normal JPA behaviour and
simply used in a wrong way on my side, or is it an EclipseLink
implementation issue?
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="Auto"/>
</properties>
</persistence-unit>
</persistence>
Thank you for your help in advance,
Andi