又是拿到一个三方的前置应用,在使用前一篇《[昨日调试]在本地运行三方公司开发的maven项目》的方案做好依赖包的非仓库本地化后,idea内使用mvn clean package -DskipTests,开始生成war包,一切顺利。
然后开始进系统(localhost:port/login.on),输入完用户名、密码,点击登录,然后系统跳转到含有本文标题的错误页面:
Named query not known: Employee.findByName |
因为对hibernate使用少,再加上mvn生成表面上是成功的(war包里的内容初看该有的都有了),所以首先感觉是hiberate的配置哪儿有问题?(非常疑惑,觉得应用里面应该没有少的或者错的东西啊),就先搜搜此问题到底是因为什么原因,大概有以下:
1、有说是<query>在<class>里的,请见:https://blog.youkuaiyun.com/daryl715/article/details/1518900;
2、Entity注解的引用类错误,请见:https://stackoverflow.com/questions/10261651/named-query-not-known-for-named-hibernate-query
有需要的同学可以参考以上,但我的问题并不是因为以上的问题。
最终发现,是src/main/java/com/xxx/bizpro/entity下面的xml文件集没有包含在生成的war包里,真是意外,pom.xml完成没有关于<resource>的配置啊,你们是怎么打包到war里的[捂脸]。
随即使用通用方案在pom.xml里新增下面的片段:
<build>
<!-- 其他配置 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>com/xxx/bizpro/entity/**/*.xml</include>
</includes>
<resource>
</resources>
</build>
结束。