Hibernate5.3 criteria使用

hibernate 使用where 条件查询

public Department queryDepartmentById (int id) {
        // 获得hibernate session
		Session session = HibernateUtils.getSession();
        // 获得事物
		Transaction transaction = session.getTransaction();
		try {
            // 开启事物
			transaction.begin();
            // 获得CriteriaBuilder 用来创建CriteriaQuery
			CriteriaBuilder builder = session.getCriteriaBuilder();
            // 创建CriteriaQuery 参数为返回结果类型
			CriteriaQuery<Department> criteria = builder.createQuery(Department.class);
            // 返会查询表 参数类型为要查询的持久类
			Root<Department> root = criteria.from(Department.class);
            // 设置where条件
			criteria.where(builder.equal(root.get("id"), id));
            // 创建query 查询
			Query<Department> query = session.createQuery(criteria);
            // 返回结果
			Department department = query.getSingleResult();
			transaction.commit();
			return department;
		} catch (Exception e) {
			e.printStackTrace();
			transaction.rollback();
		}
		return null;
	}

hibernate criteria 统计查询

/**
	 * 查询部门总数
	 * 2018年10月11日
	 * @return 部门总数
	 */
	public Integer totalDepartment () {
		Session session = HibernateUtils.getSession();
		Transaction transaction = session.getTransaction();
		try {
			transaction.begin();
			CriteriaBuilder builder = session.getCriteriaBuilder();
            // 参数为查询的结果类型
			CriteriaQuery<Long> criteria = builder.createQuery(Long.class);
            // 从什么表查询
			Root<Department> root = criteria.from(Department.class);
            // 就是sql select 之后的语句 
			criteria.select(builder.count(root));
            // 使用query 实现查询
			Query<Long> query = session.createQuery(criteria);
            // 结果集
			Long result = query.uniqueResult();
			transaction.commit();
			return result.intValue();
		} catch (Exception e) {
			e.printStackTrace();
			transaction.rollback();
		}
		return null;
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值