Professional Documents
Culture Documents
JavierFerrandiz|EllenguajeJPQL
Siempreadelantesin
JavierFerrandiz
precipitacinperosinpausa.
EnterpriseJavaBeans
Hibernate
Spring
SobreM
Buscar
EllenguajeJPQL
Buscar
Publicadoel17/07/2014porjavier
Entradasrecientes
EllenguajeJPQL
EllenguajedeconsultaJPQLtrabajasobreclasesyobjetospararealizarconsultasenelmundoJava,mientras
queSQLtrabajasobretablas,columnasyfilasenbasesdedatosrelacionales.Cuandorealizamosconsultasen
JPQLlaarquitecturaJPAseocupadeconvertirlaenunaconsultaSQL.
ContenedorSpring
QuesunStatefulSession
Bean?
QuesunStatelessSession
ClusulasJPQL.
Bean?
SELECTespecificalaentidadovaloresarecuperar.
IntroduccinSpringMVC
FROMentidadautilizarenlaseleccinyrestodeclusulas.
GenericAccessDatacon
WHEREfiltrarresultados.
Hibernate
ORDERBYordenarresultados.
GROUPBYagrupacinderesultados.
HAVINGfiltradodeagrupaciones.
Archivos
SentenciaUPDATE
septiembre2014
EstaoperacinlapodemosrealizarconentityManagerconelmtodomerge,peroloquenosaportaesta
agosto2014
sentenciasonactualizacionesenmasa.
julio2014
UPDATEPiezap
SETp.peso=100,p.color=Rojo
Categoras
WHEREp.nompieLIKETuer%'
Hibernate
SentenciaDELETE
Igualqueocurrenconlasentenciaupdateestasentencianospermiteelborradoenmasa.
HibernateTemplate
JavaPersistenceQL
JdbcTemplate
DELETEProyectopj
MapeoORMJPA
WHEREpj.ciudad=Londres
SpringCore
SpringMVC
ClusulaSELECT
StatefulSessionBean
SELECTpieFROMPiezaASpie
SELECTpie.codigoPieza,pie.nombrePiezaFROMPiezapie
SELECTDISTINCTpie.colorFROMPiezapie
StatelessSessionBean
PodemosusarunconstructorenlaclusulaSELECTparaobtenerinstanciasdeobjetosinicializadosconlos
valoresdevueltosporlaconsulta,estosobjetosnotienenqueserentidadesoestarmapeados.
SELECTNEWcom.javierferrandiz.data.MiClase(pie.color,pie.peso)FROMPiezapieWHEREpie.peso>100
http://javierferrandiz.com/?p=267
1/4
18/4/2015
JavierFerrandiz|EllenguajeJPQL
ClusulaWHERE
SELECTpieFROMPiezapieWHEREpie.peso>100
Operadores
Relacionales:=,>,>=,<,<=,[NOT]BETWEEN,[NOT]LIKE,[NOT]IN,IS[NOT]NULL,IS[NOT]EMPTY,
[NOT]MEMBEROF
Logicos:ANDORNOT
OperadorBETWEEN
SELECTpieFROMPiezapieWHEREpie.peso[NOT]BETWEEN:minValueAND:maxValue
OperadorIN
SELECTpieFROMPiezapieWHEREpie.color[NOT]IN(Rojo,Verde,Azul)
SELECTpjFROMProyectopjWHEREpj[NOT]IN(SELECTv.proyectoFROMVentav)
OperadorLIKE
SELECTpieFROMPiezapieWHEREpie.nombrePieza[NOT]LIKETuerca
SELECTpieFROMPiezapieWHEREpie.nombrePieza[NOT]LIKET%
SELECTpieFROMPiezapieWHEREpie.nombrePieza[NOT]LIKE?1
SELECTpieFROMPiezapieWHEREpie.nombrePieza[NOT]LIKE:nombre
Valoresnulosycoleccionesvacias.
Paracomprobarsiuncampoesnuloono.
SELECTvFROMVentavWHEREv.proyectoIS[NOT]NULL
Paracomprobarsiunacoleccinestavaciaono.
SELECTpjFROMProyectopjWHEREpj.ventaIS[NOT]EMPTY
Paracomprobarsiunelementoperteneceaunacoleccin.
SELECTvFROMVentavWHERE:item[NOT]MEMBEROFv.proyecto
FuncionesdeAgregacin.
AVG,COUNT,MAX,MIN,SUM
Paraencontrarunvalormximo
SELECTMAX(pie.peso)FROMPiezapie
Paraencontrarelnmerodepiezas
SELECTCOUNT(pie)FROMPiezapie
GROUPBYyHAVING
Contarlosproveedoresquerealizansuministros.
SELECTv.proveedor.codigoProveedor,COUNT(v.proveedor)FROMVentavGROUPBYv.proveedor.codigoProveedor
Encontrarlosnombresdelosproveedorestalesquetodassusventassuperenlacantidadde100unidades.
http://javierferrandiz.com/?p=267
2/4
18/4/2015
JavierFerrandiz|EllenguajeJPQL
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
Funcionesaritmticas
ABS(expresion),SQRT(expresion),MOD(dividendo,divisor),SIZE(coleccion)
SELECTpieFROMPiezapieWHERESIZE(pie.venta)>5
Ordenandoresultados.
SELECTpieFROMPiezapieWHEREORDERBYpie.nombrePiezaASC
SELECTpieFROMPiezapieWHEREORDERBYpie.nombrePiezaASC,pie.pesoDESC
Subconultas
LassubconsultassonusadasenlasclusularWHEREyHAVING,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,RIGTHJOIN
Pararecuperarlasentidadesadicionalesquenocumplenlacondicionyaseaporleladodeladerechaodela
izquierdadelarelacin.
SELECTpie.codigoPieza,v.cantidadFROMPiezapieLEFTOUTERJOINpie.ventavWHEREv.cantidad>100
JPQLpararecuperarentidades.
http://javierferrandiz.com/?p=267
3/4
18/4/2015
JavierFerrandiz|EllenguajeJPQL
Dejauncomentario
Nombre
Correoelectrnico(noserpublicado)
Web
Enviarcomentario
JavierFerrandiz,ProgramadorWeb.
ProgramadoyDiseadoporFJavierPuertasFerrndiz
http://javierferrandiz.com/?p=267
4/4