ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

HibernateUtil Clases para JAVA


Enviado por   •  4 de Diciembre de 2015  •  Apuntes  •  527 Palabras (3 Páginas)  •  241 Visitas

Página 1 de 3

HQL. Introducción

• Es un lenguaje de base de datos similar al SQL,

completamente orientado a objetos, usamos nombres

de clases y sus propiedades en lugar de nombres de

tablas y columnas.

• No diferencia entre mayúsculas y minúsculas excepto

en los nombres de clases…

• Regresa sus resultados en forma de objetos

• Independiente del manejador de base de datos

• No existe el select *

• Para hacer referencia a algún campo necesitamos

haberle asignado un alias a la tabla

FROM Usuario as u WHERE u.id = 1

FROM Usuario u WHERE u.id = 1

HQL

• Podemos asignar alias a las entidades asociadas o a los

elementos de una colección de valores usando un join

(las propiedades que sirven de enlaces entre clases):

FROM Usuario u inner join u.permisos as p

• Existen dos formas de referirnos a la propiedad que

sirve como identificador de la entidad:

– La propiedad especial “id” (así con minúsculas). No

importa si la clase entidad no tiene una propiedad llamada

id.

FROM Usuario as u WHERE u.id = 1

– Por la propiedad identificador

FROM Usuario as u WHERE u.clave = 1

HQL. Fetch join LAZY

@Entity

public class Libro implements Serializable

{ @Id

@GeneratedValue(strategy=GenerationType.IDENTITY)

private long id;

private String titulo;

public class Persona implements Serializable

{ @Id

@GeneratedValue(strategy=GenerationType.IDENTITY)

private long id;

private String nombre;

@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY)

@JoinColumn (name="personaID")

private List<Libro> libros = new ArrayList<Libro>();

Esto quiere decir que cuando recuperemos, ya dentro de una aplicación, a la

Persona, sus libros no serán recuperados e inicializados en ese momento. Al

hacer referencia a persona.getLibros() se realizará el select necesario

HQL. Fetch join LAZY

Fetch Join no se permite con iterate

Query cons = sesion.createQuery("from Persona per left join fetch per.libros");

List<Persona> listaContactos = cons.list(); //sin left no aparecen las personas sin libros

System.out.println("Hay " + listaContactos.size() + "contactos en la base de datos");

Integer idper=0;

for(Persona c : listaContactos)

{

if ( idper!= c.getId()) {//con esto consigo que no se repita persona y sus libros por cada

libro que tenga

System.out.println("Nombre Persona : " + c.getNombre() +"tiene los siguientes libros

");

List <Libro> listaLibros=c.getLibros();

...

Descargar como (para miembros actualizados) txt (4 Kb) pdf (46 Kb) docx (13 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com