Java学习之Hibernate(三)

HQL查询

    预见结果集

        返回多个结果使用list() 返回单个结果使用uniqueResult();

Query query = session.createQuery("from User", User.class);
// 多个用list 单个就用uniqueResult
List list = query.list();

Query query = session.createQuery("from User where id = 2", User.class);
User result = query.uniqueResult();

注意:在使用HQL时,可以使用 : 作为占位符,:后是自定义名称,在替换占位符时,可以直接使用自定义名称替换


无条件查询 Criteria

// 获取criteria对象
Criteria criteria = session.createCriteria(User.class);
// 添加查询条件
criteria.add(Restrictions.eq("id", 2));
// 获取criteria对象
Criteria criteria = session.createCriteria(User.class);
// 添加查询条件
criteria.setProjection(Projections.rowCount());


分页查询

    需要设置开始位置和最大查询记录数

Query query = session.createQuery("from User", User.class);
// 开始位置
query.setFirstResult(0);
// 查询条数
query.setMaxResults(2);


Hibernate中的一对多,多对多关系

    一对多关系:

        配置一对多关系



    
    	
    		
    			
    		
    		
    		
    		
    		
    		
    			
    			
    		 
    	
    

配置多对一的关系



    
    		
    			
				
			
    			
    				配置多对一的关系
    				name 表示多对一对象的属性名
    				class 表示 多对一对象的类
    				column 表示外键 
    				注意:上面在配置property时,不要重复配置外键
    			-->
    			
    		
    		
    

多对多配置



    

	
		
			
			
				
		
		 
		
			
			
		
		
	
    多对多另一个实体类的配置基本相同,将key中的column改为相应的主键,many-to-many中写相对应的实体类的类名和主键。



你可能感兴趣的:(Java学习之Hibernate(三))