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