2014-10-09 3 views
0

Я разрабатываю приложение, в котором я использую структуру Vaadin, ORM JavaPersistence с Eclipselink и базу данных Oracle.ORM - Vaadin - JavaPersistence - не сохраняет новые объекты

У меня есть следующая проблема: Я сопоставил всю свою логическую модель с базой данных с аннотациями, и если у БД есть информация, процесс сопоставления приносит мне всю информацию. Проблема возникает, когда я хочу сохранить новый объект, с этим я пытаюсь сказать, что я создаю новый экземпляр класса, и этот класс не сохраняется в базе данных. Единственный способ сохранить этот экземпляр - создать JPAContainer с типом класса экземпляра, который я хочу сохранить, и вызвать метод .AddEntity (экземпляр).

Я новичок в этой предметной области программирования объектов и ORM. Но, как я знаю, ORM полезен для сохранения данных памяти в базе данных.

Это мой persistence.xml:

org.eclipse.persistence.jpa.PersistenceProvider 

</provider> 
<exclude-unlisted-classes> 
    false 
</exclude-unlisted-classes> 

<properties> 

    <property name="javax.jbdc.platform" value="org.eclipse.persistence.platform.database.OraclePlatform" /> 


    <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver" /> 
    <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:xe"/> 
    <property name="javax.persistence.jdbc.user" value="system" /> 
    <property name="javax.persistence.jdbc.password" value="Windows706" /> 
    <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/> 

Заранее спасибо, С уважением!

+0

Как вы пытаетесь упорствовать вашу сущность, и он в сделке? – Chris

+0

Единственным способом, которым я знаю, где я могу сохранить объект, является использование объекта JPAContainter, а затем, при вызове JPA, метод .AddEntity (AnIstance). Поэтому я ищу что-то более автоматическое. –

ответ

0

Поскольку EclipseLink реализует JPA, вы можете сохранить свою сущность в БД традиционным способом.

EntityManagerFactory emf = Persistence.createEntityManagerFactory("examplePersistenceUnit"); 
EntityManager em = emf.createEntityManager(); 
try 
{ 
    em.getTransaction().begin(); 
    YourEntity e = new YourEntity(); 
    e.setName("Chuck"); 
    e.setCity("Lisboa"); 
    em.persist(e); 
    em.getTransaction().commit(); 
} 
finally 
{ 
    em.close(); 
    emf.close(); 
} 

Хорошее введение в EclipseLink можно найти here

Смежные вопросы