为了配置一个简单的JPA项目,我使用了Wildfly 8,数据源是在单机版中配置的。xml。
<datasource jta="true" jndi-name="java:jboss/datasources/postgresql" pool-name="postgreSql" enabled="true" use-ccm="true">
<connection-url>jdbc:postgresql://localhost:5432/sell</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<driver>postgres</driver>
<security>
<user-name>postgres</user-name>
<password>sell</password>
</security>
</datasource>
在Web项目中,我配置了持久性。像这样的xml文件
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
<persistence-unit name="sellAppPersistenceUnit"
transaction-type="RESOURCE_LOCAL">
<jta-data-source>java:jboss/datasources/postgresql</jta-data-source>
<class>br.com.sell.app.orm.Usuario</class>
</persistence-unit>
但是,当我添加br时。通用域名格式。卖应用程序。奥姆。通常,我在项目启动时出错,该错误表示存在hibernate问题org/hibernate/proxy/HibernateProxy,但我不使用hibernate。
13:17:50,738 ERROR [org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer] (ServerService Thread Pool -- 58) HHH000142: Javassist Enhancement failed: br.com.sell.app.orm.Usuario: java.lang.RuntimeException: by java.lang.NoClassDefFoundError: org/hibernate/proxy/HibernateProxy
at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:515)
at javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:492)
at javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:428)
at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:400)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:162)
at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:67)
at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:224)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:212)
at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:80)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:135)
at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:188)
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:403)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:520)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:148)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
为什么我可以解决这个问题?
pom.xml文件:
http://maven.apache.org/xsd/maven-4.0.0.xsd"
<modules>
<module>sellAppEndpoint</module>
<module>sellAppWeb</module>
<module>sellAppCors</module>
<module>sellAppDto</module>
<module>sellAppOrm</module>
<module>sellAppJpa</module>
</modules>
<dependencies>
<!-- para importar pacotes javax.* para o REST -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.3.0.SP1</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.0.0.Final</version>
</dependency>
</dependencies>
您的问题似乎是由于声明了不一致的依赖关系造成的——版本5.0.0中的hibernate entitymanager需要hibernate core 5.0.0,但在版本3.3.0中强制使用hibernate core。SP1。课程org。冬眠代理HibernateProxy
在3.3.0版中不存在。SP1。当hibernate entitymanager声明对hibernate core的可传递依赖时,您只需删除对hibernate core的依赖即可。
此外,Wildfly 8已经包含hibernate(4.3版),因为它必须根据规范提供JavaEE功能。您可以在Wildfly上使用hibernate,这更标准,除非您不需要hibernate 5.0的特殊功能。在这种情况下,还可以从pom.xml中删除hibernate-entityManager依赖项,您的代码应该仍然可以工作。
我声明了一个订单实体。它由日期、客户和LineItem对象列表组成。 行项目具有产品和数量的属性。我正试图模拟与JPA的这种关系。每个行项目都有ID似乎不正确,但我不确定如何在JPA中表达行项目和订单之间的关系: LineItem类 我认为行项目的主键应该是产品id、数量和订单id的组合,尽管我知道我没有对此建模。
我有2个实体:Field和ViewOptions 省略与问题无关的字段和方法
我有4张桌子: 库存(库存ID、可用数量) 一个客户可以有多个订单,而一个订单由多个orderDetails项目组成。我正在尝试将库存项目存储在由库存项目和数量整数组成的映射中。 当我尝试以这种方式持久化它时,第一个库存项目将以1的orderID添加到Order详细信息表中。但是下一个是使用2的orderID插入的(不存在)。 有什么帮助吗?
问题内容: 我一直在研究一个非常简单的JPA示例,并试图将其调整为现有数据库。但是我无法克服这个错误。(下面。)这只是我没看到的一些简单的事情。 在下面的DocumentManager类中(一个简单的servlet,因为这是我的目标),它做了两件事: 插入一行 返回所有行 插入效果很好-一切都很好。问题出在检索上。我尝试了各种参数值,但没有走运,并且尝试了各种更复杂的类注释(如列类型),但都没有成
我试图建立一个简单的SpringMVC项目。 我创建了Web应用程序项目,然后添加了Spring和公共日志库。 还有这个网站。xml文件 这是HelloWebservlet。xml 然后我创建了java类(HelloContoller.java)com.tutorialspoint包 然后我在WEB-INF/JSP/hello中创建了JSP页面。jsp 我正在处理服务器glassfish,当我运行
主要内容:集合映射实例,程序输出结果是一个接口,其中一个唯一键与每个值对象相关联。 因此,搜索,更新,删除等操作都是基于键来进行的。 完整的项目目录结构如下所示 - 集合映射实例 在这个例子中,我们将一个对象嵌入到一个实体类中,并将其定义为一个集合类型 - 。 这个例子包含以下步骤 - 第1步: 在包下创建一个实体类,这个类包含员工, 和嵌入对象(员工地址)。注解 表示嵌入对象。 文件:Employee.java 的代码如下所示 -