|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果你学习的是市场营销,是销售,也许参加大课堂的学习会更合适,因为你的工作能力中有个基础就是搭建自己的人脉,
之前将Hibernate的实体类及其映照文件也放到项目中,因为有多个项目利用统一个数据库,Hibernate实体类和映照文件反复,方便于保护和晋级。因而将其抽掏出来,打成jar包,再引进回项目。
实践操纵中,发明个诡异的成绩:项目运转没成绩,可是JUnit单位测试不克不及运转(办法利用了HQL语句时),老是报org.hibernate.hql.ast.QuerySyntaxException的毛病,申明没有找到映照文件,不晓得为什么。详细报错信息以下:
org.springframework.orm.hibernate3.HibernateQueryException:Fsettlementisnotmapped[selectffromFsettlementfwhere1=1andf.fsettlementId=:fsettlementId];
nestedexceptionisorg.hibernate.hql.ast.QuerySyntaxException:Fsettlementisnotmapped[selectffromFsettlementfwhere1=1andprePayType=PRE_PAYandf.supplierId=:supplierIdandf.payTime>=:startDateandf.payTime<=:endDateandf.stockEleSupplierId=:stockEleSupplierIdandf.payType=:payTypeandf.fsettlementId=:fsettlementId]
...
Causedby:org.hibernate.hql.ast.QuerySyntaxException:Fsettlementisnotmapped[selectffromFsettlementfwhere1=1andprePayType=PRE_PAYandf.supplierId=:supplierIdandf.payTime>=:startDateandf.payTime<=:endDateandf.stockEleSupplierId=:stockEleSupplierIdandf.payType=:payTypeandf.fsettlementId=:fsettlementId]
...
Hibernate的设置以下:
<beanid="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<propertyname="dataSource"ref="dataSource"/>
<!--del利用mappingJarLocations,不克不及再利用mappingDirectoryLocations,否则会报错
<propertyname="mappingDirectoryLocations">
<list>
<value>classpath*:/com/allen/hbm/</value>
</list>
</property>
-->
<propertyname="mappingJarLocations">
<list>
<value>WEB-INF/lib/model-core*.jar</value>
</list>
</property>
<propertyname="hibernateProperties">
<props>
<propkey="hibernate.dialect">${hibernate.stock.dialect}</prop>
<propkey="hibernate.show_sql">${hibernate.stock.show_sql}</prop>
<propkey="hibernate.cache.provider_class">${hibernate.stock.cache.provider_class}
</prop>
</props>
</property>
</bean>
Google上找到的办法逐一试过,大概是毛病太初级,基本就没人会犯此毛病吧。找不到办理办法,但是项目仍是要持续。剖析了一下,文件是不是在jar中,关于JUnit来讲,都是从classpath中读取,与其他有关。
因而实验改回本来的设置,发明仍是不可;
岂非是绝对路径,不是相对路径?因而将”/”往失落,仍是不可;
岂非要指定文件才行吗?再一次实验,居然乐成了!不分明,Hibernate不是会主动扫描的嘛;固然成功了,可是要逐一指定文件名,一定不实际;
因而各类实验,将了局逐一纪录,
<propertyname="mappingLocations">
<value>classpath*:com/allen/hbm/*.hbm.xml</value>
<!--<value>classpath:com/allen/hbm/*.hbm.xml</value>--><!--此种写法报错,不克不及辨认-->
<!--<value>classpath*:/com/alenn/hbm/</value>--><!--此种写法报错,不克不及辨认-->
<!--<value>classpath*:/com/allen/hbm</value>--><!--此种写法报错,不能辨认-->
<!--<value>classpath*:com/allen/hbm/</value>--><!--此种写法报错,不能辨认-->
<!--<value>classpath*:com/allen/hbm</value>--><!--此种写法报错,不能辨认-->
</property>
成绩固然办理了,但另有一点仍是不分明,为什么项目运转没成绩呢?
检察本栏目更多出色内容:http://www.bianceng.cn/Programming/Java/
在ruby里才是一切皆对象。当然我不并不是很了解ruby,但是ruby确实是将语法简化得很好。 |
|