javierferrandiz _ el lenguaje jpql

4
Buscar… Buscar El lenguaje JPQL Publicado el 17/07/2014 por javier El lenguaje JPQL El lenguaje de consulta JPQL trabaja sobre clases y objetos para realizar consultas en el mundo Java, mientras que SQL trabaja sobre tablas, columnas y filas en bases de datos relacionales. Cuando realizamos consultas en JPQL la arquitectura JPA se ocupa de convertirla en una consulta SQL. Cláusulas JPQL. SELECT especifica la entidad o valores a recuperar. FROM entidad a utilizar en la selección y resto de cláusulas. WHERE filtrar resultados. ORDER BY ordenar resultados. GROUP BY agrupación de resultados. HAVING filtrado de agrupaciones. Sentencia UPDATE Esta operación la podemos realizar con entityManager con el método merge, pero lo que nos aporta esta sentencia son actualizaciones en masa. UPDATE Pieza p SET p.peso = 100, p.color = ‘Rojo’ WHERE p.nompie LIKE ‘Tuer%'; Sentencia DELETE Igual que ocurren con la sentencia update esta sentencia nos permite el borrado en masa. DELETE Proyecto pj WHERE pj.ciudad = ‘Londres’ Cláusula SELECT SELECT pie FROM Pieza AS pie SELECT pie.codigoPieza,pie.nombrePieza FROM Pieza pie SELECT DISTINCT pie.color FROM Pieza pie Podemos usar un constructor en la cláusula SELECT para obtener instancias de objetos inicializados con los valores devueltos por la consulta, estos objetos no tienen que ser entidades o estar mapeados. SELECT NEW com.javierferrandiz.data.MiClase(pie.color,pie.peso) FROM Pieza pie WHERE pie.peso > 100 Entradas recientes Contenedor Spring ¿Qué es un Stateful Session Bean? ¿Qué es un Stateless Session Bean? Introducción Spring MVC Generic Access Data con Hibernate Archivos septiembre 2014 agosto 2014 julio 2014 Categorías Hibernate HibernateTemplate Java Persistence QL JdbcTemplate Mapeo ORM JPA Spring Core Spring MVC Stateful Session Bean Stateless Session Bean Enterprise JavaBeans Hibernate Spring Sobre Mí JavierFerrandiz Siempre adelante sin precipitación pero sin pausa.

Upload: ben-avraham

Post on 11-Nov-2015

214 views

Category:

Documents


0 download

DESCRIPTION

tip

TRANSCRIPT

  • 18/4/2015 JavierFerrandiz|EllenguajeJPQL

    http://javierferrandiz.com/?p=267 1/4

    Buscar

    BuscarEllenguajeJPQL

    Publicadoel17/07/2014porjavier

    EllenguajeJPQL

    EllenguajedeconsultaJPQLtrabajasobreclasesyobjetospararealizarconsultasenelmundoJava,mientrasqueSQLtrabajasobretablas,columnasyfilasenbasesdedatosrelacionales.CuandorealizamosconsultasenJPQLlaarquitecturaJPAseocupadeconvertirlaenunaconsultaSQL.

    ClusulasJPQL.SELECTespecificalaentidadovaloresarecuperar.FROMentidadautilizarenlaseleccinyrestodeclusulas.WHEREfiltrarresultados.ORDERBYordenarresultados.GROUPBYagrupacinderesultados.HAVINGfiltradodeagrupaciones.

    SentenciaUPDATEEstaoperacinlapodemosrealizarconentityManagerconelmtodomerge,peroloquenosaportaestasentenciasonactualizacionesenmasa.

    UPDATEPiezap

    SETp.peso=100,p.color=Rojo

    WHEREp.nompieLIKETuer%'

    SentenciaDELETEIgualqueocurrenconlasentenciaupdateestasentencianospermiteelborradoenmasa.

    DELETEProyectopj

    WHEREpj.ciudad=Londres

    ClusulaSELECT

    SELECTpieFROMPiezaASpie SELECTpie.codigoPieza,pie.nombrePiezaFROMPiezapie SELECTDISTINCTpie.colorFROMPiezapie

    PodemosusarunconstructorenlaclusulaSELECTparaobtenerinstanciasdeobjetosinicializadosconlosvaloresdevueltosporlaconsulta,estosobjetosnotienenqueserentidadesoestarmapeados.

    SELECTNEWcom.javierferrandiz.data.MiClase(pie.color,pie.peso)FROMPiezapieWHEREpie.peso>100

    Entradasrecientes

    ContenedorSpringQuesunStatefulSessionBean?QuesunStatelessSessionBean?IntroduccinSpringMVCGenericAccessDataconHibernate

    Archivos

    septiembre2014agosto2014julio2014

    Categoras

    HibernateHibernateTemplateJavaPersistenceQLJdbcTemplateMapeoORMJPASpringCoreSpringMVCStatefulSessionBeanStatelessSessionBean

    EnterpriseJavaBeans Hibernate Spring SobreM

    JavierFerrandiz

    Siempreadelantesinprecipitacinperosinpausa.

  • 18/4/2015 JavierFerrandiz|EllenguajeJPQL

    http://javierferrandiz.com/?p=267 2/4

    ClusulaWHERE

    SELECTpieFROMPiezapieWHEREpie.peso>100

    OperadoresRelacionales:=,>,>=,

  • 18/4/2015 JavierFerrandiz|EllenguajeJPQL

    http://javierferrandiz.com/?p=267 3/4

    JPQLpararecuperarentidades.

    SELECTv.proveedor.nombreProveedor,SUM(v.cantidad)FROMVentavGROUPBYv.proveedor.nombreProveedorHAVINGSUM(v.cantidad)>100

    Funcionesdecadenasdecaracteres.CONCAT(str1,str2),SUBSTR(str,position,length),TRIM(str),LOWER(str),UPPER(str),LENGTH(str)

    SELECTpieFROMPiezapieWHERELENGTH(pie.nombrePieza)>10 SELECTpieFROMPiezapieWHERECONCAT(pie.nombrePieza,pie.color)=TuercaRoja

    FuncionesaritmticasABS(expresion),SQRT(expresion),MOD(dividendo,divisor),SIZE(coleccion)

    SELECTpieFROMPiezapieWHERESIZE(pie.venta)>5

    Ordenandoresultados.

    SELECTpieFROMPiezapieWHEREORDERBYpie.nombrePiezaASC SELECTpieFROMPiezapieWHEREORDERBYpie.nombrePiezaASC,pie.pesoDESC

    SubconultasLassubconsultassonusadasenlasclusularWHEREyHAVING,paralassubconsultasusamos[NOT]IN,[NOT]EXISTS,ALL,ANYySOME,estastresltimassecombinanconlosoperadoresrelacionales=,=,

    SELECTpieFROMPiezapieWHEREpieIN(SELECTv.piezaFROMVentavWHEREv.cantidad>100)

    SELECTpjFROMProyectpjWHEREEXISTS(SELECTv.proyectoFROMVentavWHEREv.proyecto.codigoProyecto=pj.codigoProyecto)

    SELECTvFROMVentavWHEREv.cantidad>=(SELECTAVG(v1.cantidad)FROMVentav1)

    Asociacionesentreentidades.INNERJOIN

    SELECTpie.codigoPieza,v.cantidadFROMPiezapieINNERJOINpie.ventavWHEREv.cantidad>100

    OUTERJOIN,LEFTJOIN,RIGTHJOINPararecuperarlasentidadesadicionalesquenocumplenlacondicionyaseaporleladodeladerechaodelaizquierdadelarelacin.

    SELECTpie.codigoPieza,v.cantidadFROMPiezapieLEFTOUTERJOINpie.ventavWHEREv.cantidad>100

  • 18/4/2015 JavierFerrandiz|EllenguajeJPQL

    http://javierferrandiz.com/?p=267 4/4

    Dejauncomentario

    Nombre

    Correoelectrnico(noserpublicado)

    Web

    Enviarcomentario

    JavierFerrandiz,ProgramadorWeb.

    ProgramadoyDiseadoporFJavierPuertasFerrndiz