学习JPA遇到的问题

问题描述

2012-11-2021:42:32org.hibernate.annotations.common.Version<clinit>INFO:HCANN000001:HibernateCommonsAnnotations{4.0.1.Final}2012-11-2021:42:32org.hibernate.VersionlogVersionINFO:HHH000412:HibernateCore{4.1.2.Final}2012-11-2021:42:32org.hibernate.cfg.Environment<clinit>INFO:HHH000206:hibernate.propertiesnotfound2012-11-2021:42:32org.hibernate.cfg.EnvironmentbuildBytecodeProviderINFO:HHH000021:Bytecodeprovidername:javassist2012-11-2021:42:32org.hibernate.ejb.Ejb3ConfigurationconfigureINFO:HHH000318:CouldnotfindanyMETA-INF/persistence.xmlfileintheclasspath2012-11-2021:42:32org.hibernate.ejb.Ejb3ConfigurationconfigureINFO:HHH000318:CouldnotfindanyMETA-INF/persistence.xmlfileintheclasspath2012-11-2021:42:32org.hibernate.ejb.Ejb3ConfigurationconfigureINFO:HHH000318:CouldnotfindanyMETA-INF/persistence.xmlfileintheclasspath2012-11-2021:42:32org.hibernate.ejb.Ejb3ConfigurationconfigureINFO:HHH000318:CouldnotfindanyMETA-INF/persistence.xmlfileintheclasspath不知道这哥错在哪里,本人刚学习JPA,不是太懂,恳请高手指教1<?xmlversion="1.0"encoding="UTF-8"?>2<persistenceversion="2.0"xmlns="http://java.sun.com/xml/ns/persistence"3xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"4xsi:schemaLocation="http://java.sun.com/xml/ns/persistence5http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">67<!--为持久化单元取名为myJPA-->8<persistence-unitname="myJPA"transaction-type="RESOURCE_LOCAL">9<properties>10<!--配置Hibernate方言-->11<propertyname="hibernate.dialect"value="org.hibernate.dialect.MySQL5Dialect"/>12<!--配置数据库驱动-->13<propertyname="hibernate.connection.driver_class"value="com.mysql.jdbc.Driver"/>14<!--配置数据库用户名-->15<propertyname="hibernate.connection.username"value="root"/>16<!--配置数据库密码-->17<propertyname="hibernate.connection.password"value="root"/>18<!--配置数据库url-->19<propertyname="hibernate.connection.url"value="jdbc:mysql://localhost:3306/jpa?useUnicode=true&amp;characterEncoding=UTF-8"/>20<!--设置外连接抓取树的最大深度-->21<propertyname="hibernate.max_fetch_depth"value="3"/>22<!--自动输出schema创建DDL语句-->23<propertyname="hibernate.hbm2ddl.auto"value="update"/>24</properties>25</persistence-unit>2627</persistence>实体类如下:1packagecom.cndatacom.jpa.entity;23importjavax.persistence.Column;4importjavax.persistence.Entity;5importjavax.persistence.GeneratedValue;6importjavax.persistence.Id;7importjavax.persistence.Table;89@Entity10@Table(name="t_user")11publicclassUser{1213/**14*主键15*/16@Id17@GeneratedValue18privateLongid;1920/**21*名字22*/23@Column(name="name")24privateStringname;2526/**27*密码28*/29@Column(name="password")30privateStringpassword;3132publicLonggetId(){33returnid;34}3536publicvoidsetId(Longid){37this.id=id;38}3940publicStringgetName(){41returnname;42}4344publicvoidsetName(Stringname){45this.name=name;46}4748publicStringgetPassword(){49returnpassword;50}5152publicvoidsetPassword(Stringpassword){53this.password=password;54}5556}测试类如此:1packagecom.cndatacom.jpa.test;23importjavax.persistence.EntityManager;4importjavax.persistence.EntityManagerFactory;5importjavax.persistence.Persistence;67importorg.junit.After;8importorg.junit.Before;9importorg.junit.Test;1011importcom.cndatacom.jpa.entity.User;121314publicclassTestJPA{1516EntityManagerFactoryemf=null;1718@Before19publicvoidbefore(){20//根据在persistence.xml中配置的persistence-unitname创建EntityManagerFactory21emf=Persistence.createEntityManagerFactory("myJPA");22}2324/**25*添加用户26*/27@Test28publicvoidaddUser(){2930//创建一个用户31Useruser=newUser();32user.setName("叶开");33user.setPassword("yekai");3435//创建实体管理器对象36EntityManagerem=emf.createEntityManager();37//开启事务38em.getTransaction().begin();39//持久化对象40em.persist(user);41//提交事务42em.getTransaction().commit();43//关闭EntityManager44em.close();45}4647/**48*修改用户(用户处于托管状态)49*/50@Test51publicvoidmodifyUser1(){52EntityManagerem=emf.createEntityManager();53em.getTransaction().begin();54//查找id为1的User,进行更新55Useruser=em.find(User.class,1L);//User的主键id为Long型56user.setName("楚留香");57em.getTransaction().commit();58em.close();59}6061/**62*修改用户(用户处于游离(脱管)状态)63*/64@Test65publicvoidmodifyUser2(){66EntityManagerem=emf.createEntityManager();67em.getTransaction().begin();68//查找id为1的User,进行更新69Useruser=em.find(User.class,1L);//User的主键id为Long型70em.clear();//将实体管理器中的所有实体变成了游离态(脱管)71user.setName("李寻欢");72em.merge(user);//处于游离态的实体必须使用该方法才能更新73em.getTransaction().commit();74em.close();75}76777879/**80*删除用户81*/82@Test83publicvoiddeleteUser(){84EntityManagerem=emf.createEntityManager();85em.getTransaction().begin();86//查找id为1的User87Useruser=em.find(User.class,1L);//User的主键id为Long型88//进行删除89em.remove(user);90em.getTransaction().commit();91em.close();92}9394/**95*关闭EntityManagerFactory96*/97@After98publicvoidafter(){99if(null!=emf){100emf.close();101}102}103104}

解决方案

解决方案二:
INFO:HHH000318:CouldnotfindanyMETA-INF/persistence.xmlfileintheclasspath找不到配置文件persistence.xml,persistence.xml放至路径是固定的
解决方案三:
2012-11-2115:55:18org.hibernate.annotations.common.Version<clinit>INFO:HCANN000001:HibernateCommonsAnnotations{4.0.1.Final}2012-11-2115:55:18org.hibernate.VersionlogVersionINFO:HHH000412:HibernateCore{4.1.2.Final}2012-11-2115:55:18org.hibernate.cfg.Environment<clinit>INFO:HHH000206:hibernate.propertiesnotfound2012-11-2115:55:18org.hibernate.cfg.EnvironmentbuildBytecodeProviderINFO:HHH000021:Bytecodeprovidername:javassist2012-11-2115:55:18org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigureINFO:HHH000402:UsingHibernatebuilt-inconnectionpool(notforproductionuse!)2012-11-2115:55:18org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigureINFO:HHH000115:Hibernateconnectionpoolsize:202012-11-2115:55:18org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigureINFO:HHH000006:Autocommitmode:true2012-11-2115:55:18org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigureINFO:HHH000401:usingdriver[com.mysql.jdbc.Driver]atURL[jdbc:mysql://localhost:3306/jpa?useUnicode=true&characterEncoding=UTF-8]2012-11-2115:55:18org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplconfigureINFO:HHH000046:Connectionproperties:{user=root,password=****,autocommit=true,release_mode=auto}2012-11-2115:55:18org.hibernate.dialect.Dialect<init>INFO:HHH000400:Usingdialect:org.hibernate.dialect.MySQLDialect2012-11-2115:55:18org.hibernate.engine.transaction.internal.TransactionFactoryInitiatorinitiateServiceINFO:HHH000268:Transactionstrategy:org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory2012-11-2115:55:18org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory<init>INFO:HHH000397:UsingASTQueryTranslatorFactory2012-11-2115:55:19org.hibernate.tool.hbm2ddl.SchemaUpdateexecuteINFO:HHH000228:Runninghbm2ddlschemaupdate2012-11-2115:55:19org.hibernate.tool.hbm2ddl.SchemaUpdateexecuteINFO:HHH000102:Fetchingdatabasemetadata2012-11-2115:55:19org.hibernate.tool.hbm2ddl.SchemaUpdateexecuteINFO:HHH000396:Updatingschema2012-11-2115:55:19org.hibernate.tool.hbm2ddl.TableMetadata<init>INFO:HHH000261:Tablefound:jpa.t_user2012-11-2115:55:19org.hibernate.tool.hbm2ddl.TableMetadata<init>INFO:HHH000037:Columns:[id,name,password]2012-11-2115:55:19org.hibernate.tool.hbm2ddl.TableMetadata<init>INFO:HHH000108:Foreignkeys:[]2012-11-2115:55:19org.hibernate.tool.hbm2ddl.TableMetadata<init>INFO:HHH000126:Indexes:[primary]2012-11-2115:55:19org.hibernate.tool.hbm2ddl.SchemaUpdateexecuteINFO:HHH000232:Schemaupdatecomplete2012-11-2115:55:19org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImplstopINFO:HHH000030:Cleaningupconnectionpool[jdbc:mysql://localhost:3306/jpa?useUnicode=true&characterEncoding=UTF-8]我修改了persistence.xml路径,遇到了新的错误,哎,不知道哪的问题
解决方案四:
把错误贴出来
解决方案五:
非常谢谢,我现在调试成功了,原来是我的代码有错误,呵呵!
解决方案六:
代码哪里错了?
解决方案七:
我也是一样的问题,哪里错了

时间: 2024-08-02 00:15:30

学习JPA遇到的问题的相关文章

学习Hibernate Annotation使用实例

 目前,JPA(Java Persistence API)的使用范围越来越广,作为Java EE 5.0平台标准的ORM规范,得到了诸如:Hibernate.TopLink.OpenJpa等ORM框架的支持,同时还是EJB 3.0的重要组成部分.JPA的宗旨是为POJO提供持久化标准规范.它能够脱离容器独立运行,方便开发和测试.本文将通过一个小实例来说明如何在Hibernate中使用JPA,来达到简化编程的目的.     开发环境  Eclipse 3.3.1  MyEclipse 6.0.1G

使用Apache OpenJPA开发EJB 3.0应用,第1部分: OpenJPA与EJB 3.0

简介: Java Persistence API(JPA)是 EJB 3.0 新引入的数据持久化编程模型,它 利用 Java 5 中的注释(Annotation)和对象/关系映射,为数据持久化提供了更 简单.易用的编程方式. 本系列 文章将全面介绍其开源实现 - Apache OpenJPA,将为学习 JPA 标准和使用 OpenJPA 进行实际的应用开发提供详细的指 南. 本文是系列文章的第一部分,概述了关系型数据库和面向对象之间的阻抗失谐 (impedance mismatch),介绍了 E

Guice 3.0 学习 persist jpa

  guice 3.0 的 persist 实现 使用的是 jpa    代码可以从 googlecode 上面下载    http://code.google.com/p/google-guice/downloads/list   guice-3.0-rc3-src.zip   现在还是 beate的版本 但是可以 看api 学习了.   首先 测试使用的是 hsqldb 数据库   jpa 的配置 文件 test/META-INF/persistence.xml   <?xml versio

JPA学习笔记-JPA进阶

1.JPA的实体生命周期: JPA的实体有以下4中生命周期状态: (1).New:瞬时对象,尚未有id,还未和Persistence Context建立关联的对象. (2).Managed:持久化受管对象,有id值,已经和Persistence Context建立了关联的对象. (3).Datached:游离态离线对象,有id值,但没有和Persistence Context建立关联的对象. (4).Removed:删除的对象,有id值,尚且和Persistence Context有关联,但是已

JPA学习笔记-JPA基础

1.JPA简介: Java持久化规范,是从EJB2.x以前的实体Bean(Entity bean)分离出来的,EJB3以后不再有实体bean,而是将实体bean放到JPA中实现.JPA是sun提出的一个对象持久化规范,各JavaEE应用服务器自主选择具体实现,JPA的设计者是hibernate框架的作者,因此Hibernate作为Jboss服务器中JPA的默认实现,Oracle的Weblogic使用EclipseLink(以前叫TopLink)作为默认的JPA实现,IBM的Websphere和S

Hibernate/JPA成功使用的十点心得

大约一年以前,我为了学习一些Hibernate专业知识,因此我参加了一个Hibernate项目.从那时起,我一直在使用Hibernate框架下的JPA(Java持久API)实现,使用的思想仍就是一样的.那个项目使用了一个数据库,这个数据库规模有些大,略显落后,并且还被许多的应用程序共用.为了尽快加入到项目中,我开始学习一些Hibernate知识.从书本上的例子开始学习,感觉很简单,学起来也很快,但是发现从零开始开发一个项目,并且控制它又是另外一回事了.试着在一个大型,复杂,被许多应用程序共用的数

JBossSeam学习系列之一:准备学习环境

准备深入学习JBossSeam,好好研究研究,具体学习路线基本遵循jboss-seam-2.1.1.CR1中的<<seam_reference.pdf>>. 学习JBossSeam之前最好对相关技术有一定的了解,比如: JSF EJB3.0 JPA 然后下载相关的软件,如下: jboss-seam-2.1.1.CR1 jboss-4.2.3.GA JBossTools-3.0.0.Beta1-R200810311334-ALL-win32(开发环境) eclipse-jee-gan

MyEclipse 6.0:整合JPA框架

MyEclipse 6.0的发布极大的增强了Eclipse 3.3/Europa集成开发环境的功能,增加了Java 6支持的组件和加快了AJAX的开发率,革命性的提高了开发者的开发效率. 另外,MyEclipse 6.0现在已经和Spring.JPA整合.这项整合,允许用户们创建实体管理器和事务beans, 生成实体和DOA.这些功能很大程度上多亏有了MyEclipse. Genuitec的前开发负责人Wayne Parrott说:"我极度的自豪,因为当前这个MyEclipse版本的发布,MyE

JPA 2.0中的动态类型安全查询

自从 JPA 于 2006 年首次被引入之后,它就得到了 Java 开发社区的广泛支持.该规范的下一个主要更新 -- 2.0 版本 (JSR 317) -- 将在 2009 年年底完成.JPA 2.0 引入的关键特性之一就是 Criteria API,它为 Java 语言带来了一种独特的能力:开发一种 Java 编译器可以在运行时验证其正确性的查询.Criteria API 还提供一个能够在运行时动态地构建查询的机制. 本文将介绍 Criteria API 和与之密切相关的 元模型(metamo