最近要写一个小的B/S工程,觉得往常的SSH框架实在太过沉重,故决定只用持久层的hibernate加上DWR来实现。编码过程中出现了不少问题,才发现自己的基础还不够扎实。
问题1 Myeclipse自动映射生成的DAO文件缺乏可用性
我使用的是Myeclipse8, 或许是我配置不好,不过就目前情况来看,通过IDE自带的映射文件生成工具生成的DAO是有错误的。因为我的项目中没加入spring,就缺少了spring的事务管理,而在这种情况下,IDE生成的DAO并没有自动加入事务,这直接导致DAO中除了“查”的方法之外,余下的方法都不能正常的执行。因此为了保证可运行,必须手动添加事务。
public void save(Company transientInstance) {
log.debug("saving Company instance");
try {
Transaction ts = getSession().beginTransaction();
getSession().save(transientInstance);
ts.commit();
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
问题2 DWR.xml文件的设置问题
之前做的项目都有spring的存在,而这里没有了,因此dwr.xml文件中的<create creator="spring" javascript="CompanyManager" >的creator要从spring改成new。原来以为这样就没问题了呢,后来发现dwr会出问题,才发现除了修改creator,还需要将<param name="javabean"改成<param name="class",这样就OK了
问题3 自动生成的DAO中findByProperty方法出错,报ClassNotFoundException: org.hibernate.hql.ast.HqlToken
修正了问题1后,发现程序每次调用到findByProperty方法后都直接出现异常被捕获,(这里我的try...catch...写的不好- -,完全看不出是在哪里出的错,只知道在整个try块中有问题)。通过DEBUG,发现抛出的是ClassNotFoundException: org.hibernate.hql.ast.HqlToken异常。上网查了这个异常,绝大多数都是提到是在将hibernate3项目部署到weblogic上的时候会出现的异常,因为一个叫antlr.jar的包冲突了。我到我项目里一查看,果然有个antlr.jar的包。悲剧的是,这个包居然是锁死在整个Hibernate 3 Core Libraries中的,无法单独删除。同时,我的项目也不是部署在weblogic上而是tomcat上的啊。郁闷中偶然网上见到一个方案,让我们在Hibernate.cfg.xml中添加一个属性,尝试一下,果然奏效了,工程正常执行了~
添加的属性:
<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
个人觉得添加到这个属性的作用应该是设定 更改hibernate执行查询时默认调用的类 为另一个类,这样可能就绕开了对antlr.jar包的调用吧(个人感觉吧,不知道真实原因是什么- -)。
by NN 09-11-23 00:53
分享到:
相关推荐
struts1+hibernate+dwr 项目 房屋信息发布struts1+hibernate+dwr 项目 房屋信息发布struts1+hibernate+dwr 项目 房屋信息发布
Struts2 + spring + hibernate + dwr 完美整合代码 dwr 用户注册 多级下拉联动 刷新表格.. 全部代码
struts1+spring+hibernate+dwr 项目 满意度调查struts1+spring+hibernate+dwr 项目 满意度调查struts1+spring+hibernate+dwr 项目 满意度调查struts1+spring+hibernate+dwr 项目 满意度调查
使用struts2、hibernate、spring、dwr整合的简单项目。包括级联等 注意:csdn上面显示为chm文件。该文件为.7z的压缩文件。用压缩软件可以打开的 csdn弄错了
一个struts2+spring+hibernate+dwr的小实例,不过木有搭建说明,不过有dwr的使用说明,至于表结构可以看映射配置文件就知道创建什么表了
struts2+hibernate+spring+dwr(用户注册)struts2+hibernate+spring+dwr(用户注册)
使用MyEclipse 5.5把该应用布置到Tomcate的webapp目录下 4. 使用demo\布置之后lib替换被布置到Tomcat下的lib 5. 在MyEclipse 5.5启动web服务器 6. 打开IE,在地址栏中输入:...
hibernate+dwr+spring+jstl的demo
spring+struts+hibernate+jbpm+dwr整合开发的OA办公系统源码
ajax,spring,hibernate,dwr,实现二级联动
NULL 博文链接:https://jsrookie.iteye.com/blog/294756
公文管理、申请审批、公告管理、会议管理、权限管理、个人办公、客户管理、人事等等。项目技术:Struts1.2 + Hibernate3.0 + Spring2 +DWR。java毕业设计 jsp毕业设计 ssh毕业设计
重磅推出 struts+spring+hibernate+dwr整合分页例子
sturts2+spring+hibernate+dwr2例子
spring+struts+hibernate+dwr+jstl做的实例.rar
自己搭建的spring3+struts2+hibernate+dwr框架
Struts+Hibernate+Spring+DWR实例
struts1+spring+hibernate+DWR整合方案详解
Spring+Struts+Hibernate+DWR集成教程.rar saivicky出品!必属精品!
不系统采用Hibernate+Dwr实现权限管理,主要用到了JavaScript面向对象的思想...