Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Orm 基于javase的openJPA_Orm_Jpa_Openjpa_Java - Fatal编程技术网

Orm 基于javase的openJPA

Orm 基于javase的openJPA,orm,jpa,openjpa,java,Orm,Jpa,Openjpa,Java,我尝试在IBMRAD上开发JPA项目。我可以在Webpshere上成功运行它, 但问题是我的机器太旧了。因此,在JavaEE容器中部署并不重要 合理。我想在JSE上运行它。但它给出了以下错误: 94 test INFO [main] openjpa.Runtime - Starting OpenJPA 1.2.1-SNAPSHOT 235 test INFO [main] openjpa.jdbc.JDBC - Using dictionary class "com.ibm.ws

我尝试在IBMRAD上开发JPA项目。我可以在Webpshere上成功运行它, 但问题是我的机器太旧了。因此,在JavaEE容器中部署并不重要 合理。我想在JSE上运行它。但它给出了以下错误:

94  test  INFO   [main] openjpa.Runtime - Starting OpenJPA 1.2.1-SNAPSHOT
235  test  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class "com.ibm.ws.persistence.jdbc.sql.DB2Dictionary".
1797  test  WARN   [main] openjpa.Enhance - This configuration disallows runtime optimization, but the following listed types were not enhanced at build time or at class load time with a javaagent: "[class Customer]".
Exception in thread "main" <openjpa-1.2.1-SNAPSHOT-r422266:686069 fatal user error> org.apache.openjpa.persistence.ArgumentException: The type "class Customer" has not been enhanced.
    at org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1650)
    at org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1624)
    at org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:717)
    at org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
    at org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
    at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
    at org.apache.openjpa.kernel.BrokerImpl.newObjectId(BrokerImpl.java:1114)
    at org.apache.openjpa.kernel.DelegatingBroker.newObjectId(DelegatingBroker.java:268)
    at org.apache.openjpa.persistence.EntityManagerImpl.find(EntityManagerImpl.java:451)
    at deneme.main(deneme.java:21)
94测试信息[main]openjpa.Runtime-启动openjpa 1.2.1-SNAPSHOT
235测试信息[main]openjpa.jdbc.jdbc-使用字典类“com.ibm.ws.persistence.jdbc.sql.DB2Dictionary”。
1797 test WARN[main]openjpa.enhanced-此配置不允许运行时优化,但以下列出的类型在生成时或使用javaagent加载类时未得到增强:“[class Customer]”。
线程“main”org.apache.openjpa.persistence.ArgumentException中出现异常:“class Customer”类型尚未增强。
位于org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1650)
位于org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1624)
位于org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:717)
位于org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616)
位于org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541)
位于org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308)
位于org.apache.openjpa.kernel.BrokerImpl.newObjectId(BrokerImpl.java:1114)
位于org.apache.openjpa.kernel.DelegatingBroker.newObjectId(DelegatingBroker.java:268)
位于org.apache.openjpa.persistence.EntityManagerImpl.find(EntityManagerImpl.java:451)
位于deneme.main(deneme.java:21)
我错过了什么

根据说明,my persistent.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="test" transaction-type="RESOURCE_LOCAL">
    <provider>
        com.ibm.websphere.persistence.PersistenceProviderImpl
    </provider> 
        <class>Customer</class>
        <properties>
            <property name="openjpa.ConnectionDriverName" value="com.ibm.db2.jcc.DB2Driver"/>
            <property name="openjpa.ConnectionURL" value="jdbc:db2://localhost:50000/PARUD:retrieveMessagesFromServerOnGetMessage=true;"/>
            <property name="openjpa.ConnectionUserName" value="db2admin"/>
            <property name="openjpa.ConnectionPassword" value="xxxxx"/>
            <property name="openjpa.jdbc.Schema" value="POOL"/>
        </properties>
    </persistence-unit>
</persistence>**
**
com.ibm.websphere.persistence.PersistenceProviderImpl
顾客
**
只是一个指针: 您需要在运行时通过-javaagent:yourlib.jar增强类 甚至在编译时。您可以了解有关此主题的更多信息:


“获得运行时增强的第二种也是推荐的方法是在启动OpenJPA将运行的JVM时提供javaagent。”

我刚刚完成了让OpenJPA 2.1.0在Tomcat 7.0上运行的练习。我根本无法让运行时增强在Tomcat下工作,所以我放弃了,决定使用构建时增强。我正在Eclipse下开发我的代码,因此我遵循以下说明:

但是请注意,本页上的说明是针对通用java项目的。如果您使用的是动态Web项目,请确保正确指定build directory参数。我使用了-Dbuild.dir=build/classes,这是编译代码的典型位置


还有一个你不得不忍受的恼人的怪癖。必须使用“项目>生成项目”菜单项手动调用生成器。当增强器运行时,它会修改以前构建的类。因此,在发布到Tomcat之前,您需要点击F5或刷新项目。

是的,我尝试了javaagent.like this-javaagent:C:\Program Files\IBM\WebSphere\AppServer\plugins\com.IBM.ws.jpa.jar它给出了错误:“无法创建Java虚拟机”问题是此处的空间“程序文件”。我将文件移到了“C:\com.ibm.ws.jpa.jar”下,一切似乎都正常。提前感谢:)