我正在开发一个应用程序,我使用Vaadin框架,ORM JavaPersistence与Eclipselink和Oracle数据库。
我有以下问题: 我已经使用Annotations将我的所有逻辑模型映射到数据库,如果DB有信息,映射过程会为我提供所有信息。当我想保存一个新实体时出现问题,我试图说我创建了一个类的新实例,并且该类没有保存在数据库中。我必须保存该实例的唯一方法是创建一个JPAContainer,其中包含我要保存的实例的类类型,并调用方法.AddEntity(instance)。
我是对象编程和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 :(得分:0)
自EclipseLink实现JPA以来,您可以以传统方式将实体保存在DB中。
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