1. 根据id查询 find getReference
@Test
public void test() {
EntityManager em = JpaUtil.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
Customer c = em.find(Customer.class, 1);
System.out.println(c);
tx.commit();
em.close();
}
2.对象导航查询
@Test
public void test1() {
EntityManager em = JpaUtil.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
Customer c = em.find(Customer.class, 1);
Set<LinkMan> linkMams = c.getLinkMams();
System.out.println(linkMams);
tx.commit();
em.close();
}
3.JPQL查询(位置定位法与参数指定法)
@Test
public void test2() {
EntityManager em = JpaUtil.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
Query query = em.createQuery("from Customer where custName = :custName and custAddress like :custAddress");
query.setParameter("custName", "客户1");
query.setParameter("custAddress", "%1%");
List<Customer> list = query.getResultList();
for (Customer l : list) {
System.out.println(l);
}
tx.commit();
em.close();
}
JPQL(分页查询)
@Test
public void test3() {
EntityManager em = JpaUtil.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
Query query = em.createQuery("from Customer");
query.setFirstResult(0);
query.setMaxResults(2);
List<Customer> list = query.getResultList();
for (Customer l : list) {
System.out.println(l);
}
tx.commit();
em.close();
}
4.本地sql语句
@Test
public void test4() {
EntityManager em = JpaUtil.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
Query query = em.createNativeQuery("select * from cst_customer where cust_name = ? and cust_address like ?",
Customer.class);
query.setParameter(1, "客户1");
query.setParameter(2, "%1%");
List<Customer> list = query.getResultList();
for (Customer l : list) {
System.out.println(l);
}
tx.commit();
em.close();
}
5.QBC(完全摒弃sql语句)
@Test
public void test5() {
EntityManager em = JpaUtil.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Customer> cq = cb.createQuery(Customer.class);
Root<Customer> root = cq.from(Customer.class);
Predicate p = cb.and(cb.equal(root.get("custName"), "客户1"),
cb.like(root.get("custAddress"), "%1%"));
cq.where(p);
Query query = em.createQuery(cq);
List<Customer> list = query.getResultList();
for (Customer l : list) {
System.out.println(l);
}
tx.commit();
em.close();
}