
hibernate
ll_feng
这个作者很懒,什么都没留下…
展开
-
如何防止hql注入
在ssh框架下会经常用到hql查询,和jdbc编程一样我们也需防止hql注入。所谓的hql注入,总结起来就是利用表单输入“'”以及“or”等sql语法的保留字或语法符号,来巧妙的避开常用的验证的手段而已。 通常的解决办法就是进行动态参数设置。具体做法是:先将hql拼装起来。用"?"代替变量值。然后在hibernate里将参数值动态注入。表达起来比较费劲。还是贴代码吧:[c...2008-09-08 17:13:32 · 475 阅读 · 0 评论 -
关于使用注解映射的一些问题
问题一:如果实体继承一个超类,在持久化时报:org.hibernate.AnnotationException: No identifier specified for entity。。。经查找,原因是继承的问题,应在超类上加注:@MappedSuperclass问题二:实体继承一个超类,持久化时没有任何异常,但对象并没有保存。这是可能是超类不是抽象的。必须将被继承的超类声...2009-04-22 17:24:54 · 173 阅读 · 0 评论 -
如何通过hql进行时间查询
时间查询是非常普遍的查询方式。但是由于时间本身有多种表现形式,再加上各类数据库对时间的支持和实现有差异,所以在hql中的查询方式也有差异。以下是一些总结:一、oracle下查询date类型数据:在oracle下,date类型也支持日期时间类型,也就是说虽然类型是date型,但实际是可能存储datetime型的。由于通过sql查询需要先对date型进行to_char()转换(也可以对变量...2009-05-15 09:55:43 · 873 阅读 · 0 评论 -
如何锁定字段,不让更新?
经常会发现一在特定情况下,我们不希望某个字段值被修改,比如:一条记录的创建时间。通常在编辑时,如果不设置创建时间,更新后的创建时间为设置为空。当然也可以将创建时间的值带到编辑页面中,再次保存时就不会为空了。那多麻烦。其实hibernate有更好的办法。那就是设置属性的update值为false.举例:1、实体类映射[code="java"]@Entity@Table(name ...2009-06-11 16:13:37 · 927 阅读 · 0 评论 -
浅析泛型DAO在SSH构架中的应用
自JDK1.5后,泛型在很多方面开始应用。DAO层也开始有了基于泛型的开发模式.可能也正因为如此,有不少人认为DAO作为企业级开发的一层可以去掉了,理由就是只要有一个泛型DAO就可以搞定了!而我认为哪怕只有一个DAO,也应算是一个层,层的定义不是由它下面的组件多少决定的,而是由它扮演的角色来决定的。这里主要就泛型DAO的开发举个例子:一、泛型DAO的接口[code="java"]...2009-08-21 15:13:16 · 107 阅读 · 0 评论 -
HQL与QBC查询表达式对照表
对照表如下: HQL运算符QBC运算符含义=Restrictions.eq()等于(equals)<> Restrictions.ne()不等于(not equal)> Restrictions.gt()大于(gr...原创 2010-06-20 22:27:16 · 195 阅读 · 0 评论 -
seesion不及时释放导致的数据库连接问题
这几天正在开发的系统,出现了严重的数据库连接问题,时常因挂掉,[code="java"]警告: SQL Error: 0, SQLState: null2011-1-12 11:20:40 org.hibernate.util.JDBCExceptionReporter logExceptions严重: Listener refused the connection with ...原创 2011-01-11 20:59:24 · 649 阅读 · 0 评论 -
优化hibernate批量数据的处理
hibernate官方参考指南里有对批量数据处理的指导一、批量插入[code="java"]Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();for ( int i=0; i...原创 2012-11-30 12:45:09 · 187 阅读 · 0 评论