Приветствую Вас ГостьВторник, 14.05.2024, 20:52

Программирование на Java, Android, Delphi


Блог

Главная » 2014 » Июнь » 3 » Использование JPQL и Criteria API - примеры
16:29
Использование JPQL и Criteria API - примеры

Здесь выложу примеры использования Criteria API  и JPQL. Часть кода закомментирована.

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package jpa;

import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.ParameterExpression;
import javax.persistence.criteria.Root;

/**
 *
 * @author martyshov
 */
@Stateless
public class MainBean {

 // Add business logic below. (Right-click in editor and choose
 // "Insert Code > Add Business Method")
 @PersistenceContext
 EntityManager em;

 /**
 *
 * @return
 */
 public List getCustomerList() {
 //Query q = em.createQuery("select c from Customer c join c.zip z where z.radius > 500 and z.radius < 700");
 // Query q = em.createQuery("select c from Customer c, c.zip z where z.radius > 500");
 //Query q = em.createQuery("select c from Customer c inner join c.zip z");
 //Query q = em.createQuery("select distinct c from Customer c where exists (select o.customerId from PurchaseOrder o where o.customerId = c)");
 //Query q = em.createQuery("select distinct c from Customer c where LOCATE('ers', c.name) > 0");
 //Query q = em.createQuery("select c from Customer c, IN(c.zip) z"); - ошибка
 //q.setParameter(1, "%Val%");
 //q.setParameter(2, "%Mar%");

 CriteriaBuilder builder = em.getCriteriaBuilder();
 CriteriaQuery query = builder.createQuery(Customer.class);
 Root root = query.from(Customer.class);
 query.select(root);
 //Join join = root.join(Customer_.purchaseOrderCollection);

 //query.where(builder.like(root.get(Customer_.name), "%Mart%"));
 //builder.between(root.get(Customer_.customerId), 100, 900);
 //query.where(builder.or(builder.between(root.get(Customer_.customerId), 100, 900), builder.equal(root.get(Customer_.customerId), 6347))) ;
 query.where(builder.lt(root.get(Customer_.customerId), 500));
 query.orderBy(builder.asc(root.get(Customer_.name)));

 //query.where(builder.or(builder.between(root.get(Customer_.customerId), 100, 900)), builder.equal(root.get(Customer_.customerId), 6347)) ;
 //query.where(builder.between(root.get(Customer_.customerId), 100, 900));
 //builder.and(builder.equal(root.get(Customer_.customerId), 6347));
 //query.where(builder.and(builder.equal(root.get(Customer_.customerId), 6347)));
 TypedQuery typed_query = em.createQuery(query);
 return typed_query.getResultList();
 }

 public List getCustomerList2() {
 //Query q = em.createQuery("select c from Customer c join c.zip z where z.radius > 500 and z.radius < 700");
 // Query q = em.createQuery("select c from Customer c, c.zip z where z.radius > 500");
 //Query q = em.createQuery("select c from Customer c inner join c.zip z");
 //Query q = em.createQuery("select distinct c from Customer c where exists (select o.customerId from PurchaseOrder o where o.customerId = c)");
 //Query q = em.createQuery("select distinct c from Customer c where LOCATE('ers', c.name) > 0");
 //Query q = em.createQuery("select c from Customer c, IN(c.zip) z"); - ошибка
 //q.setParameter(1, "%Val%");
 //q.setParameter(2, "%Mar%");

 CriteriaBuilder builder = em.getCriteriaBuilder();
 CriteriaQuery query = builder.createQuery(String.class);
 Root root = query.from(Customer.class);
 query.select(builder.concat(root.get(Customer_.name), root.get(Customer_.phone)));

 query.where(builder.or(builder.between(root.get(Customer_.customerId), 100, 900), builder.equal(root.get(Customer_.customerId), 6347)));
 query.orderBy(builder.desc(root.get(Customer_.name)), builder.asc(root.get(Customer_.fax)), builder.desc(root.get(Customer_.phone)));

 TypedQuery typed_query = em.createQuery(query);
 return typed_query.getResultList();
 }

 public List getCustomerList3() {

 CriteriaBuilder builder = em.getCriteriaBuilder();
 CriteriaQuery query = builder.createQuery(String.class);
 Root root = query.from(Customer.class);
 query.select(builder.concat(root.get(Customer_.name), root.get(Customer_.phone)));
 
 query.where(builder.gt(root.get(Customer_.customerId), 400));
 
 //query.where(builder.equal(root.get("name"), "Wren Computers"));
 //query.where(builder.isNotNull(root.get("name")));
 //query.where(builder.like(root.get(Customer_.name), "%Mar%"));
 query.where(builder.lt(root.get("customerId"), 500));
 
 TypedQuery typed_query = em.createQuery(query);
 return typed_query.getResultList();
 }

 public List getMicroMarketList() {
 Query q = em.createQuery("select m from MicroMarket m");
 //Query q = em.createQuery("select m from MicroMarket m where m.zipCode not in (select c.zip from Customer c)");
 return q.getResultList();
 }

 public Integer getCountCustomer() {
 Query q = em.createQuery("select COUNT(c) from Customer c");
 List arr = q.getResultList();
 return arr.get(0);
 }

 public String doUpdateData() {
 Query q = em.createQuery("update Customer c set c.phone = '88888-99999' where c.customerId in (2, 3, 106)");
 q.executeUpdate();
 return null;
 }

 public String doDeleteData() {
 Query q = em.createQuery("delete from Customer c where c.customerId = 2494");
 q.executeUpdate();
 return null;
 }
}

Категория: Java EE | Просмотров: 2166 | Добавил: alex | Рейтинг: 5.0/1
Категории раздела
Java (Общие вопросы) [17]
Java (Библиотека, пакеты Java) [17]
Java (Разработка программного обеспечения на Java) [5]
Java (Среда разработки NetBeans) [5]
JSF + PrimeFaces [21]
Java EE [11]
Разное [3]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поиск
Календарь
«  Июнь 2014  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
30
Архив записей