package com.rex.junit;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.rex.entity.metadata.MetadataGroupEntity;
public class ServiceTest {
private EntityManagerFactory entityManagerFactory;
/**
* @Title: setUp
* @Description: JAVA SE获取持久单元工厂实例
* @throws Exception
*/
@Before
public void setUp() throws Exception {
entityManagerFactory = Persistence.createEntityManagerFactory("rexWEB");
}
/**
* @Title: tearDown
* @Description: 测试实例完成后关闭连接工厂实例释放资源
* @throws Exception
*/
@After
public void tearDown() throws Exception {
if (entityManagerFactory!=null && entityManagerFactory.isOpen()) {
entityManagerFactory.close();
}
}
/**
* @Title: fetchCriteriaCount
* @Description: 通过Criteria实例获取符合条件的数据量
*/
@Test
public void fetchCriteriaCount() {
EntityManager entityManager = null;
try {
//创建数据库连接对象
entityManager = entityManagerFactory.createEntityManager();
//创建条件构造器实例
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
//创建条件查询实例
CriteriaQuery<Object> criteriaQuery = criteriaBuilder.createQuery();
//创建查询实体
Root<MetadataGroupEntity> groupRoot = criteriaQuery.from(MetadataGroupEntity.class);
//创建查询结果实例
criteriaQuery.select(criteriaBuilder.count(groupRoot));
Query query = entityManager.createQuery(criteriaQuery);
Long count = (Long) query.getSingleResult();
System.out.println("------------------------------------------------------------------------");
System.out.println(count);
System.out.println("------------------------------------------------------------------------");
} catch (Throwable e) {
e.printStackTrace();
}finally{
if (entityManager!=null && entityManager.isOpen()) {
entityManager.close();
}
}
}
}