服务于区块链开拓者

www.zhidnet.com

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  hibernate

摘要:hql中不支持union和unionAll关键字因为在查询出的结果集中无法进行排序。代替union起到相同作用的 是or关键字。在构造hql时考虑使用or代替union产生多个结果集的组合。详解如下(转载):经过百度,google知道hibernate中hql是不支持union的,所以只能借助native sql了。背景如下:一年前写了一个hql:原来代码StringcountHql2="selectcount(distinctp)fromProjectasp,CommentSimpleasc,ProjectBookmarkasbwhere("+"c.owner. 阅读全文
posted @ 2013-10-11 18:35 知点网 阅读(8894) 评论(0) 推荐(0)

摘要:平时经常用Hibernate,由于习惯表间不建立关联,所以HQL查询时候经常要用in语句。由于表间没有建立外键的关联关系所以使用in是最常见的代替使用对象po中的set。但是在写hql时如果在new object()对象的前面写上distinct关键字是可以去掉重复记录的,完全不必考虑使用in排除重复记录,但是在本公司框架中前台的ecside获得记录总数时调用的方法中,获得记录总数代码如下:public Page findBy(String query, PageInfo pageInfo) { String countQuery = "select count(*) " 阅读全文
posted @ 2013-10-11 18:13 知点网 阅读(11597) 评论(0) 推荐(0)

摘要:HttpSession与Hibernate中Session的区别一、javax.servlet.http.HttpSession是一个抽象接口它的产生:J2EE的Web程序在运行的时候,会给每一个新的访问者建立一个HttpSession,这个Session是用户身份的唯一表示。注意,是容器(Tomcat,Resin)自动创建的。用途:存放这个用户的一些经常被用到的信息,例如:用户名,权限。例如在购物车程序里,存放用户买的商品。销毁:一定时间(跟容器有关)内,用户无任何动作,session自动销毁。得到的方法: www.2cto.comHttpSession session = request. 阅读全文
posted @ 2013-10-11 09:22 知点网 阅读(624) 评论(0) 推荐(0)

摘要:1、DAO层接口的设计,在MemberDao接口中定义了如下两个方法: public interface MemberDao{ //省略了其他的代码 /** *//** * 分页查询 * @param hql 查询的条件 * @param offset 开始记录 * @param length 一次查询几条记录 * @return */ public List queryForPage(final String hql,final int offset,final int length); /** *//** * 查询所有记录数 * @param hql 查询的条件 * @return 总记录 阅读全文
posted @ 2013-03-21 09:32 知点网 阅读(564) 评论(0) 推荐(0)

摘要:Interceptor拦截器的使用小结,程序实例是典型的 “数据稽核”过程,即在对数据库中的数据进行修改后会自动添加对应的日志记录在数据库中对应的日志表中,用于记录对数据库中关键数据的修改过程和追踪,最重要的应用主要是日志记录功能,将业务层的逻辑处理和数据访问层的处理分离开来。功能类似于spring 中的aop功能。Pojo类代码:Tuser类package com.inspur.po;import java.util.HashSet;import java.util.Set;/*** TUser entity. @author MyEclipse Persistence Tools*/pub 阅读全文
posted @ 2013-03-20 22:19 知点网 阅读(746) 评论(0) 推荐(0)

摘要:criteria中获得查询的属性值的方式是从list列表中获得属性部分,而list列表中对于条目的存取方式是一对象数组的形式存储的object[],所以从中获取属性时也应该采用对象数组形式:public void testGroup(){ DetachedCriteria deCriteria=DetachedCriteria.forClass(TUser.class); ProjectionList projectList=Projections.projectionList(); projectList.add(Projections.groupProperty("age&quo 阅读全文
posted @ 2013-03-20 21:59 知点网 阅读(374) 评论(0) 推荐(0)

摘要:package com.inspur.test;import java.util.Iterator;import java.util.List;import org.hibernate.Criteria;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.criterion.Exp 阅读全文
posted @ 2013-03-14 14:49 知点网 阅读(460) 评论(0) 推荐(0)

摘要:DetachedCriteria可以脱离session的生命周期,对应相同的查询条件可以重复使用,增加了查询条件的重用性,同时不用每次使用criteria时都要重复创建session,而session的销毁同时也会使得criteria失效,使用DetachedCriteria可以在每次使用时与当前的session实例绑定可以获得更好的代码重用性,同时使某些通用的查询条件抽离出来。此为DetachedCriteria的作用之一:实例代码:public void testDetached(){ TUser user=new TUser(); DetachedCriteria deCriteria. 阅读全文
posted @ 2013-03-13 11:45 知点网 阅读(778) 评论(0) 推荐(0)

摘要:复合查询的应用:package com.inspur.test;import java.util.Iterator;import java.util.List;import java.util.Set;import org.hibernate.Criteria;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.criterion.Expression;import com.inspur.po.TA 阅读全文
posted @ 2013-03-13 10:54 知点网 阅读(382) 评论(0) 推荐(0)

摘要:双向一对多实际上就是一对多和多对一的组合,通过双向一对多可以将关联关系的维护交给被控制对象自己去维护自己的属性,而不用再有主控方来维护关联关系和被控方的属性域,数据库中数据的维护性能提高,sql语句执行效率更高。Inverse=“true”cascade=“call”是主控对象中的两个必须设置的属性,inverse用来将关联关系的维护工作交给被控方自己来处理,不再关心被控方的属性域值,有被控方自己来设置其外键值,cascade是设置级联操作,主控方的任何修改都将引起被控方的修改。使用实例如下:Taddress类代码:package com.inspur.po;/*** TAddress ent 阅读全文
posted @ 2013-03-12 21:19 知点网 阅读(237) 评论(0) 推荐(0)

摘要:显示多态声明的类只有在明确指定其类名的时候才能实例化得到其对应的类对象polymorphism=“explicit”;Java中个继承关系反应在hibernate的orm映射中的表现形式:最佳的方法是table per class hierarchy有利于高并发量的存取。相对于使用外键关联的父子类具有更高的使用效率,避免了多表查询。相对于使用每个子类一张表的模式使用显示多态的方法,如果父类改动的话那么子类必须也要改变,这样会造成连带影响。使用table per class hierarchy模式用法如下:Item类:package com.inspur.po;import java.io.Se 阅读全文
posted @ 2013-03-12 15:46 知点网 阅读(303) 评论(0) 推荐(0)

摘要:Hibernate中如果在数据库表中涉及到关联到业务逻辑的组合主键时,最好的设计是使用基于实体类的组合主键,建立包含组合主键所有属性的实体类然后,在po类中指定主键类属性,在配置文件中配置主键类key—property属性,在hibernate的业务操作层可以直接按照主键类作为po识别的标志,在save,load,find等方法中其id值可以直接设置成主键类。实例代码如下:Po类:package com.inspur.po;/*** TUsers entity. @author MyEclipse Persistence Tools*/public class TUsers implement 阅读全文
posted @ 2013-03-12 10:57 知点网 阅读(355) 评论(0) 推荐(0)

摘要:构造方法的作用就是初始化类中的数据成员和静态变量已经静态成员,在构造函数中必须对类中的数据成员进行初始化生产对应的类对象然后在使用数据成员的过程中才能使用它所提供的方法(服务)构造方法是不能被继承的无法设置默认值Spring框架可以避免在构造方法中初始化数据成员类对象,采用依赖注入的方法,由IOC容器完成对依赖对象的注入,在需要时可以随时使用数据成员提供的方法(服务)构造方法注入可以把对特定接口的不同实现类的对象注入同一个被注入对象中,这样就可以实现被注入对象的重用,可以根据不同的接口实现重用相同的逻辑(被注入类)类似于多个子类对象被调用父类对象的方法调用一样。接口中的方法默认是public 阅读全文
posted @ 2013-03-11 17:34 知点网 阅读(1098) 评论(0) 推荐(0)

摘要:myEclipse中junit的用法我们创建一个Java工程,添加一个example.Hello类,首先我们给Hello类添加一个abs()方法,作用是返回绝对值: 下一步,我们准备对这个方法进行测试,确保功能正常。选中Hello.java,右键点击,选择New->JUnit Test Case: Eclipse会询问是否添加junit.jar包,确定后新建一个HelloTest类,用来测试Hello类。 选中setUp()和tearDown(),然后点击“Next”: 选择要测试的方法,我们选中abs(int)方法,完成后在HelloTest.java中输入: JUnit会以以下顺.. 阅读全文
posted @ 2013-03-08 16:15 知点网 阅读(6654) 评论(0) 推荐(0)

摘要:Query对象的list()和iterate()方法的执行效率问题iterate方法使用select查询所有id字段的值,然后在缓存中寻找匹配的对象如果在缓存中没有,则通过额外的select语句根据id值从表中获得该对象。最好的执行效率如下方式编码:public void printProduct(){ Session session=HibernateUtil.getSession(); Transaction tx=null; Product product=null; try{ tx=session.beginTransaction(); String hql="from Pr 阅读全文
posted @ 2012-10-20 17:11 知点网 阅读(423) 评论(0) 推荐(0)

摘要:No configuration found. Configuring ehcache from ehcache-failsafe.xml 解决方案No configuration found. Configuring ehcache from ehcache-failsafe.xml 。ehcache-failsafe.xml 是来自于ehcache-1.1.jar包,但原因并不是找不到 ehcache-failsafe.xml 而造成的错误,把 ehcache-1.1.jar包里的 ehcache-failsafe.xml 抽取出来,改名为ehcache.xml放到工程的Src目录下,刷新 阅读全文
posted @ 2012-10-18 19:24 知点网 阅读(1237) 评论(0) 推荐(0)