在J2SE项目中:

<?xml version="1.0" encoding="UTF-8" ?>  <persistence 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" version="1.0">   <persistence-unit name="demo" transaction-type="RESOURCE_LOCAL"><provider>org.hibernate.ejb.HibernatePersistence</provider><class>com.ncs.entity.UserInfo</class><properties>  <property name="hibernate.hbm2ddl.auto" value="update"/>  <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver"/>  <property name="hibernate.connection.url" value="jdbc:oracle:thin:@127.0.0.1:1522:xe"/>  <property name="hibernate.connection.username" value="system"/>  <property name="hibernate.connection.password" value="151923"/>  <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>  <property name="hibernate.show_sql" value="true"/>  <property name="hibernate.format_sql" value="true"/>  </properties> </persistence-unit></persistence>

注意:配置参数hibernate.hbm2ddl.auto 各个取值的含义

validate  update  create  create-drop

这几个参数的作用主要用于:自动创建  更新  验证数据库表结构

如果不是此方面的需求取none

validate:加载hibernate时,验证创建数据库表结构

create:每次加载hibernate,重新创建数据库表结构,这就是导致数据库表结构丢失的原因

create-drop:加载hibernate时创建,退出是删除表结构

update:加载hibernate自动更新数据库结构

常见问题排错:

1.

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named HelloTitan at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:56) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34) at Main.main(Main.java:10)

原因:没有Persistence provider

解决办法:错误提示很明显:No Persistence provider.

(1)检查lib:jar丢失,则将需要的lib添加到classpath中,Jboss使用的是hibernate实现,这些lib在下面的目录中能找到

jboss-X\common\lib\

(2)可能provider不对.检查xml文件里面的provider

2.

Exception in thread "main" javax.persistence.PersistenceException: [PersistenceUnit: HelloTitan] Unable to build EntityManagerFactory       at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677)       at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)       at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)       at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)       at Main.main(Main.java:10)   Caused by: org.hibernate.HibernateException: Could not find datasource       at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:79)       at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:137)       at org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider(InjectionSettingsFactory.java:29)       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:89)       at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2101)       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1325)       at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)       at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)       ... 4 more   Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial       at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)       at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)       at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)       at javax.naming.InitialContext.lookup(InitialContext.java:392)       at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75)       ... 11 more  

原因:JNDI没有初始化成功

解决办法: 在classpath添加 jnid.properties 文件 (以JBoss为例,配置如下)

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactoryjava.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfacesjava.naming.provider.url=127.0.0.1:1099

3.

程序成功运行,但是数据没有写入数据库

原因:没有提交数据

解决办法:em.getTransaction().commit();

附录

Hibernate SQL方言 (hibernate.dialect)

RDBMS 方言
DB2 org.hibernate.dialect.DB2Dialect
DB2 AS/400 org.hibernate.dialect.DB2400Dialect
DB2 OS390 org.hibernate.dialect.DB2390Dialect
PostgreSQL org.hibernate.dialect.PostgreSQLDialect
MySQL org.hibernate.dialect.MySQLDialect
MySQL with InnoDB org.hibernate.dialect.MySQLInnoDBDialect
MySQL with MyISAM org.hibernate.dialect.MySQLMyISAMDialect
Oracle (any version) org.hibernate.dialect.OracleDialect
Oracle 9i/10g org.hibernate.dialect.Oracle9Dialect
Sybase org.hibernate.dialect.SybaseDialect
Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialect
Microsoft SQL Server org.hibernate.dialect.SQLServerDialect
SAP DB org.hibernate.dialect.SAPDBDialect
Informix org.hibernate.dialect.InformixDialect
HypersonicSQL org.hibernate.dialect.HSQLDialect
Ingres org.hibernate.dialect.IngresDialect
Progress org.hibernate.dialect.ProgressDialect
Mckoi SQL org.hibernate.dialect.MckoiDialect
Interbase org.hibernate.dialect.InterbaseDialect
Pointbase org.hibernate.dialect.PointbaseDialect
FrontBase org.hibernate.dialect.FrontbaseDialect
Firebird org.hibernate.dialect.FirebirdDialect

JPA的persistence.xml的使用及常见问题相关推荐

  1. JPA中persistence.xml模板

    持久化单元,持久化对象的集合. 事务类型:本地事务和全局事务.某些应用场合,只能使用全局事务. 有两个数据库,mysql和oracle.转账时扣钱从mysql进行,加钱是在oracle执行,怎样确保两 ...

  2. 不在JPA 的 persistence.xml 文件里配置Entity class的解决的方法

     在Spring 集成 Hibernate 的JPA方式中,须要在persistence配置文件里定义每个实体类.这样很地不方便.2种方法能够解决此问题: 这2种方式都能够实现不用在persist ...

  3. JPA介绍及persistence.xml配置介绍

    JPA 全称是:Java Persistence API 是由EJB 3.0软件专家组开发,其宗旨是为POJO提供持久化标准规范,了解JPA 从 persistence.xml 开始.它的作用是用来配 ...

  4. JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法

    原文地址:http://www.cnblogs.com/taven/p/3351841.html JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法 在Spr ...

  5. JPA persistence.xml 文件初学者指南

    介绍 在本文中,我将解释 JPA persistence.xml配置文件的用途,以及如何使用可用的 XML 标记或属性设置 Java Persistence 应用程序. 虽然 Spring 应用程序可 ...

  6. java persistence.xml_java – 找不到persistence.xml

    我尝试使用jpa与spring-orm和hibernate. 我有带有TRADES表的mysql数据库.我尝试使用jpa使用此表. 我尝试使用persistence.xml测试EntityManage ...

  7. IDEA配置persistence.xml

    persistence.xml 里面需要配置关于Hibernate的信息 以后需要的配置属性都可以在此文件里面找到<persistence xmlns="http://java.sun ...

  8. Maven 跨项目调用persistence.xml动态配置文件

    1.场景 由于业务原因,需要把common项目中的persistence.xml移至database项目中,并且persistence.xml的部分变量是调用了父项目的父级pom.xml的参数. 2. ...

  9. [JPA] javax.persistence.EntityNotFoundException: Unable to find XXXX with id 0

    [JPA] javax.persistence.EntityNotFoundException: Unable to find XXXX with id 0 解决办法是: 原因: 无论是@OneToO ...

最新文章

  1. 机器学习中,梯度下降算法的问题引入
  2. 算法--------最大正方形(Java版本)
  3. Oracle数据库基础入门《二》Oracle内存结构
  4. 基于BP神经网络+HOG特征提取的视频中车辆车牌识别算法仿真
  5. java代码是怎么运行的_Java代码是如何运行起来的?
  6. Python-函数和代码复用
  7. https://www.unimelb.edu.au/
  8. 教你怎么屏蔽掉在移动端的宽带运营商的流量劫持,屏蔽无耻的广告
  9. 计算机数据库系统考研复试面试题,2016年山西财经大学081203计算机应用技术871数据库系统概论复试笔试最后押题五套卷...
  10. PropertyUtils.copyProperties 属性值复制失败
  11. 目前常用的室内导航地图有哪些?什么软件可以室内导航?
  12. FlashFXP,flashfxp使用方法
  13. 波士顿法律第一至五季/全集Boston Legal迅雷下载
  14. 仿真软件测试基尔霍夫定律,标签:基尔霍夫定律
  15. windows10 飞秋不能发送文件 防火墙设置
  16. 中乾文化,如何树立正确的财富观?
  17. 微信小程序项目源码网上商城|电商+后台管理系统含论文+PPT+源码
  18. MATLAB智能算法30个案例分析pdf
  19. Vue.js 内置了10个过滤器,下面简单介绍它们的功能和用法。
  20. 使用百度大脑EasyDL创建吸烟监控模型

热门文章

  1. windows nssm将应用程序做成服务的实例
  2. asyncio协程与并发
  3. 涨姿势:Java 异常?尝试自定义异常
  4. 关于更新系统后CocoaPods不能使用的问题
  5. BZOJ1078 [SCOI2008]斜堆 堆
  6. 51nod 1344 走格子【贪心/前缀和】
  7. Java SpringMVC实现PC端网页微信扫码支付完整版
  8. JSON字符串和对象 的转换
  9. visual studio编译错误集(转)
  10. VS2008下配置WTL开发环境