java jpa hibernate_java – 带有Hibernate映射文件的Spring Data JPA

我想将Spring Data JPA与Hibernate映射文件一起使用,而不使用JPA-Annotations.

但是我在服务器启动时面临这个异常(tomcat):

java.lang.IllegalStateException: No persistence units parsed from {classpath*:META-INF/persistence.xml}

at org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.obtainDefaultPersistenceUnitInfo(DefaultPersistenceUnitManager.java:547)

at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.determinePersistenceUnitInfo(LocalContainerEntityManagerFactoryBean.java:311)

at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:260)

My dispatch-servlet.xml looks like the following:

class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">

class="org.springframework.data.jpa.support.ClasspathScanningPersistenceUnitPostProcessor">

是否可以将Hibernate映射文件与ClasspathScanningPersistenceUnitPostProcessor一起使用?

我让它运行

和JPA注释.

谢谢你的帮助!

解决方法:

简要地

您的问题可能来自您提供的mappingFileNamePattern.尝试** / * .hbm.xml而不是** hbm.xml.

完整代码段:

class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">

class="org.springframework.data.jpa.support.ClasspathScanningPersistenceUnitPostProcessor">

详情

蚂蚁路径模式

Spring使用Ant路径样式模式.您可以在Ant Website上找到有关这些模式的详细文档.双星号通配符表示:递归子目录.它后面应该是一个斜杠,因为它代表一个目录.

ClasspathScanningPersistenceUnitPostProcessor

ClasspathScanningPersistenceUnitPostProcessor的映射文件检测部分将两个参数(basePackage(您的构造函数args)和mappingFileNamePattern)考虑在内.通过建议的更正,Spring将在类路径的子文件夹org / xxxxxx / server / beans /中搜索所有** .hbm.xml *.

换句话说,您不能指望您的mappingFileNamePattern将被单独解释为搜索.

下面是制作作业的ClasspathScanningPersistenceUnitPostProcessor的代码片段:

String path = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX

+ basePackage.replace('.', File.separatorChar)

+ File.separator + mappingFileNamePattern;

ClasspathScanningPersistenceUnitPostProcessor的小限制

您无法扫描位于类路径中JAR文件根目录的HBM文件. basePackage不支持为空,只能使用“.”.值.

此外,底层的PathMatchingResourcePatternResolver不能使用带有wilcard(在大多数情况下为*)的Ant样式路径模式而没有根目录(here和here(其他注释中的第一个警告)).

ClasspathScanningPersistenceUnitPostProcessor的错误

这个类从未使用过Hibernate.

在1.4.x之前的版本中,有this bug.

在this pull request中,似乎有一个新的错误阻止我在JAR中使用HBM.我在第146行得到了一个N​​ullPointerException,因为resource.getURI().getPath();似乎没有使用带有两个的URI:在协议(jar:file:/在这种情况下)并返回一个空路径.

(当我找到一个或发布一个错误报告时,我会用错误报告的链接更新我的回答.)

标签:java,spring,hibernate,spring-data-jpa,hibernate-mapping

来源: https://codeday.me/bug/20190620/1245654.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值