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类所描述的对象,然后有返回对象来获得复合属性中包含的对象以及对象属性。

  • 相关阅读:
    Linux oracle操作
    Job
    Oracle创建表空间和用户并分配权限
    Oracle赋予用户查询另一个用户所有表的权限
    plsql中文乱码解决方案
    PLSQL创建Oracle定时任务,定时执行存储过程
    fcntl函数参数F_GETPIPE_SZ、F_SETPIPE_SZ报错引出的关于linux-specific头文件的使用方法
    从Windows Server 2008 迁移mantis到CentOS 6.8
    从Windows Server 2008 迁移VisualSVN到CentOS 6.8
    CentOS 6.8上开启NFS服务给不同用户使用的曲线设置方法
  • 原文地址:https://www.cnblogs.com/moonfans/p/2957183.html
Copyright © 2011-2022 走看看