我可以检索实体,但我不能坚持WebSphere 7 JPA

时间:2011-07-11 22:11:11

标签: jpa websphere jpa-2.0 eclipselink

我正在处理在NetBeans中开发的应用程序。它使用单个实体,可以从DB检索或持久保存新实体。它使用JPA 2.0 w / EclipseLink。在捆绑的Glassfish中部署时,它可以正常工作。但是,在部署到WAS 7.0.0.9(已包含JPA 2.0补丁)时,我可以检索实体,但我无法保留它们。

我在无状态EJB 3.0中持久保存的代码是:

public void create(MyEntity entity) {
        getEntityManager().persist(entity);
}

我已将logging属性设置为FINEST,因此我可以获得更多详细信息,

<property name="eclipselink.logging.level" value="FINEST"/>

但是我在日志中得到的是:

[EL Finer]: 2011-07-11 17:02:59.813--UnitOfWork(1634296169)--Thread(Thread[WebContainer : 9,5,main])--initialize identitymaps
[EL Finer]: 2011-07-11 17:02:59.815--ServerSession(833630640)--Thread(Thread[WebContainer : 9,5,main])--client acquired
[EL Finest]: 2011-07-11 17:02:59.815--UnitOfWork(137562163)--Thread(Thread[WebContainer : 9,5,main])--PERSIST operation called on: PU_TEST.
[EL Finer]: 2011-07-11 17:02:59.816--UnitOfWork(137562163)--Thread(Thread[WebContainer : 9,5,main])--initialize identitymaps

服务器日志也没有显示相关信息。有什么想法吗?

提前致谢。


解决方案: 这是工作的persistence.xml文件

<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.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_2_0.xsd">
    <persistence-unit name="fonacotCap" transaction-type="JTA">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <jta-data-source>jdbc/fonacotCap</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="eclipselink.target-server" value="WebSphere_7"/>
            <property name="eclipselink.target-database" value="Informix"/> 
            <property name="eclipselink.weaving" value="true"/>** 
            <property name="eclipselink.ddl-generation" value="create-tables"/>
            <property name="eclipselink.logging.level" value="FINEST"/>
            <property name="eclipselink.logging.file" value="/opt/apps/libs/persistence.log"/>
        </properties>
    </persistence-unit> </persistence>

1 个答案:

答案 0 :(得分:0)

您是否已将eclipselink配置为持久性提供程序?默认情况下,WAS使用自己的持久性提供程序(包装OpenJPA)。

Configuring WAS Persistence Provider