千家信息网

如何解决persistence.xml配置文件修改存放路径的问题

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍如何解决persistence.xml配置文件修改存放路径的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!persistence.xml配置文件修改存放路径
千家信息网最后更新 2026年11月03日如何解决persistence.xml配置文件修改存放路径的问题

这篇文章主要介绍如何解决persistence.xml配置文件修改存放路径的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

persistence.xml配置文件修改存放路径

整合Spring、struts2和Spring Data JPA的时候遇到以下问题,现记录以供参考。

按以上代码配置实体管理工厂时将会抛出异常,大意就是找不到persistence.xml文件。

因为我的persistence.xml文件是放在与src同级的resource文件夹内的,而默认会去src下META-INF文件夹加载该配置文件。

解决办法有两种

1、第一种:

将persistence.xml文件移至src/META-INF/下,若不存在该文件夹则手动创建;

2、第二种:

org.springframework.orm.jpa.LocalEntityManagerFactoryBean

改为

org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean

如果要了解实现原理,请自行查看源码。

持久化persistence.xml配置文件

在EJB中,一个实体Bean应用由实体类和persistence.xml文件文件组成。persistence.xml文件在jar文件的META-INF目录下。persistence.xml文件指定实体Bean使用的数据源及Entity Manager对象的默认行为。

我们来看一个最简单的persistence.xml文件,了解一下它的配置。

               java:/DefaultMySqlDS                                             
  • persistence-unit:节点可以有一个或多个,每个persistence-unit 节点定义了持久化内容名称、使用的数据源以及持久化产品的专有属性。

  • name:属性定义持久化名称。

  • jta-data-source:节点指定实体Bean使用的数据源JNDI名称,如果应用发布在jboss下,数据源名称就必须带有java:/前缀,数据源名称大小写敏感。

  • properties:节点用作指定持久化产品的各项属性。

对于properties 节点需要说明的是,各个应用服务器使用的持久化产品都不一样,如jboss使用的是hibernate,weblogic10使用的是kodo。因为jboss采用了hibernate,hibernate有一项属性"hibernate.hbm2ddl.auto",该属性指定实体Bean发布时是否同步数据库结构,如果"hibernate.hbm2ddl.auto"的值设为"create-drop",在实体发布及卸载时将自动创建及删除相应数据库表。

jboss服务器启动或关闭时也会引发实体Bean的发布及卸载。

ps:如果你的表已经存在,并且想保留数据,发布实体 bean 时可以把 hibernate.hbm2ddl.auto 的值设为 none 或update,以后为了实体 bean 的改动能反应到数据表,建议使用 update,这样实体 Bean 添加一个属性时能同时在数据表增加相应字段。

扩展(persistence-unit)

持久化单元包含的属性有:

  • 在该持久化单元范围(作用域)内的实体类

  • 为实体类提供持久化的持久化提供者(Persistence Provider)或库

  • 实体类的数据源(Data Source)

  • 应用使用的事务类型(Transaction Type)

持久化单元能够被打包成WAR文件,EJB-JAR文件,EAR文件的一部分,或者直接打包成应用程序能够直接使用的JAR文件。

持久化单元的范围(作用域)取决于persistence.xml文件的位置。一般说来,IDE能够使用引导界面来正确放置persistence.xml的位置。例如使用IDE为EJB模块(Module)创建的持久性单元,persistence.xml文件将被放在EJB模块的src/conf目录中,当你将模块打包时,persistence.xml文件被放在EJB JAR文件的META-INF目录中。这样持久化单元的作用域就是EJB JAR文件中的类。

ps:persistence.xml文件的位置决定持久化的根(Persistence Root)。持久化的根为JAR文件或者包含META-INF目录(前提是persistence.xml位于此)的目录。

以上是"如何解决persistence.xml配置文件修改存放路径的问题"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

文件 实体 数据 配置 属性 单元 数据源 名称 目录 节点 应用 路径 问题 产品 位置 作用 内容 文件夹 模块 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 湖南永感互联网科技有限公司 河南真二互联网科技有限公司 互联网公司 科技公司 嘟嘟瓜互联网科技 时间互联网络科技 掌上梦互联网科技 互联网 科技服务平台 金融科技和互联网金融 深圳前海聚择互联网科技有限公司 恒银科技与互联网金融 承德科技产业互联网发展 互联网大会黑科技排名 互联网科技公司实习生 国大互联网教育科技有限公司薪资 上海钢联属于互联网科技股吗 互联网时代科技型公司的机会 绵阳真晨互联网科技有限公司 恒生科技互联网指数十大成分股 广州全民伙伴互联网科技有限公司 武汉亿视互联网科技有限公司 云之行互联网科技 互联网科技工作委员会 疫情对互联网科技公司影响 互联网与新科技 苏州互联网科技贷款公司 互联网教育科技公司vipkid 江苏互联网科技小贷 抖集互联网科技技术咨询 互联网领先科技成果宣传视频 科技发展第三阶段互联网时代
0