zoukankan      html  css  js  c++  java
  • hibernate中使用criteria的复合查询

    复合查询的应用:

    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.TAddress;

    import com.inspur.po.TUser;

     

    import junit.framework.TestCase;

     

    public class TestCri extends TestCase{

        Session session=null;

     

        @Override

        protected void setUp() throws Exception {

           Configuration config=new Configuration().configure();

           SessionFactory sessionFactory=config.buildSessionFactory();

           session=sessionFactory.openSession();

        }

     

        @Override

        protected void tearDown() throws Exception {

           session.close();

        }

    //  public void testCri(){

    //     TAddress address=null;

    //     TUser user=null;

    //     Set addresses=null;

    //     Criteria criteria=session.createCriteria(TUser.class);

    //     List list=criteria.list();

    //     for(int i=0;i<list.size();i++){

    //         user=(TUser)list.get(i);

    //         System.out.println(user.getName());

    //         addresses=user.getTAddresses();

    //         Iterator it=addresses.iterator();

    //         while(it.hasNext()){

    //            address=(TAddress)it.next();

    //            System.out.println(address.getAddress());

    //           

    //         }

    //        

    //        

    //     }

    //    

    //  }

        public void testCompositeQuery(){

           TUser user=null;

           TAddress address=null;

           Set addresses=null;

           Criteria criteria=session.createCriteria(TUser.class);

           Criteria addCriteria=criteria.createCriteria("TAddresses");

           addCriteria.add(Expression.like("address", "%hongkang%"));

           List list=null;

           list=criteria.list();

           for(int i=0;i<list.size();i++){

               user=(TUser)list.get(i);

               System.out.println(user.getName());

               addresses=user.getTAddresses();

               Iterator it=addresses.iterator();

               while(it.hasNext()){

                  address=(TAddress)it.next();

                  System.out.println(address.getAddress());

               }

           }

        }

       

     

    }

    复合查询是指在对象的复合属性上面,针对复合属性中的对象的属性指定查询条件,返回的是criteria中使用的Class类所描述的对象,然后有返回对象来获得复合属性中包含的对象以及对象属性。

  • 相关阅读:
    Jira汉化
    maven settings.xml配置用户信息
    Ubuntu 源码方式安装Subversion
    JS表格分页(封装版)
    CSS选择器之基本选择器总结
    有关Web常用字体的研究?
    关于解决不同浏览器之间的兼容性问题
    八一八浏览器内核
    DIV CSS float浮动
    JS对象
  • 原文地址:https://www.cnblogs.com/moonfans/p/2957183.html
Copyright © 2011-2022 走看看