You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hibernate使用jar-file属性时报No query defined for that name错误

解决方案

按优先级依次尝试以下配置修改:

  • 补充exclude-unlisted-classes配置
    JTA 类型的持久化单元在容器环境下默认会启用类过滤逻辑,仅扫描当前persistence.xml所在归档内的实体类,不会自动扫描<jar-file>指定的外部 jar。需要在<persistence-unit>标签内、<properties>标签前显式关闭该配置:
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    
  • 适配JBoss VFS协议替换扫描器
    JBoss 内置的VFS虚拟文件协议会导致Hibernate默认扫描器无法正确解析jar包内的类文件,需要在<properties>中显式指定JBoss专用的扫描器实现:
    <property name="hibernate.archive.scanner" value="org.hibernate.jpa.boot.archive.internal.JBossArchiveScannerImpl"/>
    
  • 清理依赖jar的冗余持久化配置
    检查firstJar.jar和secondJar.jar的META-INF目录下是否存在独立的persistence.xml文件,如果存在会被容器识别为独立持久化单元,导致当前PU不会扫描其内部的实体类,删除依赖jar中冗余的persistence.xml即可。
  • 移除冲突的事务配置
    当前配置同时存在旧版本Hibernate专用的hibernate.transaction.manager_lookup_class和JPA 2标准的hibernate.transactionJtaPlatform,二者功能重叠可能导致初始化逻辑异常,删除旧的hibernate.transaction.manager_lookup_class配置项即可。

内容的提问来源于stack exchange,提问作者Marco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 06:54:03