这几天敲一个Hibernate的Demo,使用的是Hibernate.5.2.10.Final,发现了下面的一个错误,找不到Person.hbm.xml文件,原因是把Person.hbm.xml放到了实体类相同路径下,编译后找不到。
Exception in thread "main" org.hibernate.boot.MappingNotFoundException: Mapping (RESOURCE) not found : com/yasmine/hibernate/create/Person.hbm.xml : origin(com/yasmine/hibernate/create/Person.hbm.xml)
at org.hibernate.boot.spi.XmlMappingBinderAccess.bind(XmlMappingBinderAccess.java:56)
at org.hibernate.boot.MetadataSources.addResource(MetadataSources.java:274)
at org.hibernate.boot.cfgxml.spi.MappingReference.apply(MappingReference.java:70)
at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:413)
at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87)
at org.hibernate.boot.MetadataSources.buildMetadata(MetadataSources.java:179)
at com.yasmine.hibernate.create.ExportTable.main(ExportTable.java:24)

本文介绍了在Maven项目中,由于Hibernate Demo运行时找不到xml映射文件,作者通过分析Maven默认编译规则,发现需要将xml文件编译到classpath。通常,xml文件应放在resources目录下,但为了与实体类同路径,作者选择修改Maven配置,将src/main/java下的xml文件一并编译。在pom.xml文件中添加特定配置,指定包含java路径下所有xml文件作为资源,以便编译后能正确读取。
最低0.47元/天 解锁文章
854





