Es-jpa-jpa-criteria-api

提供:Dev Guides
移動先:案内検索

JPA-API Criterios

Criterios predefinidos es una API que se utiliza para definir las consultas a las entidades。 JPQLコンサルタントの定義の代替案。 Estas Consultas息子のティポ・デ・セグーロ、ポルタティル・イ・ファシル・デ・モディフィカル・カンビアンド・ラ・シンタクシス。 JPQLに似ています。esquemaesquema abstract(編集によるエスケーマ)とincrustadosのオブジェクトです。 メタデータのAPIは、APIモデルの基準を永続的に取得するためのAPIモデルです。

主要なベンタジャデロスクリテリオスAPIは、検出されたエラーを検出し、コンパイルを完了します。 Basado en la cadena JPAコンサルタント&JPQL criterios consultas basadas en rendimiento y eficiencia

Historia del APIの基準

JPAの最新版を参照してください。 JPAのlos criterios es notificadoとlas especificacionesの通知は、タントにあります。

  • JPA 2.0で、コンサルタントのAPIを参照してください。 *JPA 2.1で、Criterios y eliminar(actualizaciónmasiva y eliminar)が含まれています。

Criterios Estructura de consulta

JPQLの評価基準は、複数のコンサルタントからの類似の使用法を許可します。 El siguiente* paquete javax.persistence.criterios * para eldiseñode una consulta。 ラ・シンストラクシス・クリテリオス・コンサルタント

Los siguientes criterios simples consulta devuelve todas las instancias de la clase de entidad en el origen de datos。

EntityManager em = ...;
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Entity class> cq = cb.createQuery(Entity.class);
Root<Entity> from = cq.from(Entity.class);
cq.select(Entity);
TypedQuery<Entity> q = em.createQuery(cq);
List<Entity> allitems = q.getResultList();

ラ・コンサルタ・ムエストラ・ロス・パソス・バシコス・パラ・クレ・ウン・コンジャント・デ・クリテリオス。

  • EntityManager objutil CriteriaBuilderを使用して使用します。
  • CriteriaQuery コンサルティングの目的で使用します。 エスタコンサルティングアオブオブオブジェトセラモディフィカドコンロスデタレスデラコンサルタント
  • CriteriaQuery.form コンサルティング契約書
  • CriteriaQuery.select リストを作成することができます。
  • TypedQuery <T> コンサルテーション用の事前準備およびコンサルテーション用ユーティリティ。
  • TypedQuery <T>の getResultList メソッドを参照してください。 Esta consulta devuelve unacolecciónde entidades、el resultado se almacena en una lista。

APIの基準の例。

基礎知識を考慮してください。 Supongamos que el jpadb.tabla de empleados contiene los siguientes registros:

Eid   Ename          Salary   Deg
401   Gopal          40000    Technical Manager
402   Manisha        40000    Proof reader
403   Masthanvali    35000    Technical Writer
404   Satish         30000    Technical writer
405   Krishna        30000    Technical Writer
406   Kiran          35000    Proof reader

JPA en el eclipse que IDE llamado JPA_Eclipselink_Criteria のプロジェクトを作成します。 トドス・ロス・モデュロス・デ・エステ・プロジェクトは、連続を記述しています:

クレアentidades

Crear un paquete denominado com.finddevguides.eclipselink.entity ja * "src ' *

Crear una clase denominada* Empleado.java *en paquete。 ラ・クレース・エンティダード・エンプリアード・セ・ミューエストラ・デ・ラ・シギエンテ・マネラ

package com.finddevguides.eclipselink.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Employee
{
   @Id
   @GeneratedValue(strategy= GenerationType.AUTO)
   private int eid;
   private String ename;
   private double salary;
   private String deg;

   public Employee(int eid, String ename, double salary, String deg)
   {
      super( );
      this.eid = eid;
      this.ename = ename;
      this.salary = salary;
      this.deg = deg;
   }

   public Employee( )
   {
      super();
   }

   public int getEid( )
   {
      return eid;
   }
   public void setEid(int eid)
   {
      this.eid = eid;
   }

   public String getEname( )
   {
      return ename;
   }
   public void setEname(String ename)
   {
      this.ename = ename;
   }

   public double getSalary( )
   {
      return salary;
   }
   public void setSalary(double salary)
   {
      this.salary = salary;
   }

   public String getDeg( )
   {
      return deg;
   }
   public void setDeg(String deg)
   {
      this.deg = deg;
   }
   @Override
   public String toString()
   {
      return "Employee [eid=" + eid + ", ename=" + ename + ", salary=" + salary + ", deg=" + deg + "]";
   }
}

Persistence.xml

Persistence.xml Archivo es la siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
   http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

   <persistence-unit name="Eclipselink_JPA" transaction-type="RESOURCE_LOCAL">

      <class>com.finddevguides.eclipselink.entity.Employee</class>

      <properties>
         <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpadb"/>
         <property name="javax.persistence.jdbc.user" value="root"/>
         <property name="javax.persistence.jdbc.password" value="root"/>
         <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
         <property name="eclipselink.logging.level" value="FINE"/>
         <property name="eclipselink.ddl-generation" value="create-tables"/>
      </properties>

   </persistence-unit>
</persistence>

Clases de servicio

保守的なサービスのクラス、メタデータのAPIメタデータの初期のコンサルティングパートナのコンサルティングパートナです。 Crear un paquete denominado* ‘com.finddevguides.eclipselink.service’ 。 La clase denominada *CriteriaAPI.java se crea en paquete。 La clase DAO se muestra de la siguiente manera:

package com.finddevguides.eclipselink.service;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;

import com.finddevguides.eclipselink.entity.Employee;

public class CriteriaApi
{
   public static void main(String[] args)
   {
      EntityManagerFactory emfactory = Persistence.createEntityManagerFactory( "Eclipselink_JPA" );
      EntityManager entitymanager = emfactory.createEntityManager( );

      CriteriaBuilder criteriaBuilder = entitymanager.getCriteriaBuilder();
      CriteriaQuery<Object> criteriaQuery = criteriaBuilder.createQuery();

      Root<Employee> from = criteriaQuery.from(Employee.class);

     //select all records
      System.out.println(“Select all records”);
      CriteriaQuery<Object> select =criteriaQuery.select(from);
      TypedQuery<Object> typedQuery = entitymanager.createQuery(select);
      List<Object> resultlist= typedQuery.getResultList();

      for(Object o:resultlist)
      {
         Employee e = (Employee);
         System.out.println("EID : " + e.getEid() + " Ename : " + e.getEname());
      }

     //Ordering the records
      System.out.println(“Select all records by follow ordering”);
      CriteriaQuery<Object> select1 = criteriaQuery.select(from);
      select1.orderBy(criteriaBuilder.asc(from.get("ename")));
      TypedQuery<Object> typedQuery1 = entitymanager.createQuery(select);
      List<Object> resultlist1= typedQuery1.getResultList();

      for(Object o:resultlist1)
      {
         Employee e = (Employee);
         System.out.println("EID : " + e.getEid() + " Ename : " + e.getEname());
      }

      entitymanager.close( );
      emfactory.close( );
   }
}

Eclipse IDEの前処理プログラム、前処理モジュール、管理パネルの管理パネルの説明

Select All records
EID : 401 Ename : Gopal
EID : 402 Ename : Manisha
EID : 403 Ename : Masthanvali
EID : 404 Ename : Satish
EID : 405 Ename : Krishna
EID : 406 Ename : Kiran
Select All records by follow Ordering
EID : 401 Ename : Gopal
EID : 406 Ename : Kiran
EID : 405 Ename : Krishna
EID : 402 Ename : Manisha
EID : 403 Ename : Masthanvali
EID : 404 Ename : Satish