[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.newcomer] JPA/EclipseLink 1.0.2 J2SE Project: emf.createEntityManager() truncates tables

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