Spring con JPA y hibernate Flashcards

1
Q

Por que usar spring y hibertnate

A

Por que tenemos todos los beneficios de spring, como facil de probar, inyeccion de dependencias, las transacciones son mas faciles de utilizar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Que necesitamos para usar spring

A

un persistence.xml(META-INF) vacio y un jpaContext.xml que va a ser el que sustituir al persistence

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Que se tiene que configurar para que pueda utilizar spring y no persistence.xml

A

se pone un listener en el web.xml

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Por que es bueno usar JPA en lugar de hibernate o cualquier otra implementacion

A

Por que si queremos cambiar de proveedor podemos hacerlo sin ningun problema, sin en cambio usamos hibernate y cambiaos, tendriamos que cambiar todas las referencias a hibernate

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Que es lo minimo requerido para una crear una entidad jpa

A

Se necesita un @Id y la anotacion @Entity

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Que es el dialecto

A

Es el lenguaje especifico sql que vamos a estar trasladando desde JPA

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cuales son los posibles valores de h2ddlauto

A
  1. create
  2. create-drop (elimina todo lo que tenga un objeto referenciado)
  3. update
  4. validate(Valida que no falte nada, se puede usar en produccion)
  5. none
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Cuales son los parametros que se pueden pasar a @GeneratedValue

A

auto, sequence y identity

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Para que sirve @PersistenceContext

A

Representa a un persistence unit, el persistence unit representa una conexion a una base de datos especifica con su dialecto especifico, inyecta el entity manager a nuestro codigo para que podamos interactura con la base de datos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Para que sirve @Transactional

A

Se pone en la capa servicio y es para manejo de transacciones con spring

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Cual es la diferencia entre persist() y merge()

A

persist no regresa nada(void) y necesitamos hacer flush() para que se guarde en base de datos, merge es para actualizar y regresa un objeto del tipo que le estemos pasando y no necesita flush()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Como se utiliza @OneToMany y @ManyToOne

A

Del lado de OneToMany debemos especificar el objeto unitario por medio de mappedBy y del lado de la lista solo anotamos con ManyToOne y ese objeto debe llamarse igual que lo que pusimos en mappedBy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cuantos tipos de fetch hay

A

Lazy y eager

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Cual es el problema con lazy loading

A

Si estamos pretendiendo cargar algo que es lazy y no tenemos un evento que dispare la carga lazy, por ejemplo un boton o un link, nos mandara un error ya que el contexto no logra resolver esto en el tiempo que la pagina lo pide, generalemnte el contexto jpa se quede hasta el servicio, pero nosotros necesitamos extenderlo hasta que muestre la pagina, esto se hace poniendo en el jpaContext un filtro llamado OpenEntityManagerInViewFilter

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Que son las proyecciones

A

Son similares a las vistas, tenermos que crear clases que representen estas vistas y en sus contructor le pasamos los valores que necesitamos nos regrese el query, por ejemplo Select new com.pluralsight.GoalReport(g.id, g.minutos, g.actividad) from Goal g

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Que son los named queries

A

Son queries estaticos que se cargar en tiempo de que se esta levantando el servidor y nos sirven ya que forzamos el tipado y podemos evitar errores en tiempo de compilcacion

17
Q

Da una introduccion a Spring Data

A

Nos permite deshacernos de la capa repositorio y su boiler code, ya que nos evita poner todo ese codigo, basicamente nos quedamos con la interfaz y la extendemos de jparepository y al hacer esto tenemos out of the box todos los metodos para hacer CRUD, so necesitamos un reporte o alguna busqueda cuztomizada podemos dejar ese metodo ahi en la interfaz y anotarlo con @Query y basicament copiar lo que teniamos en los namedQueries, nos da muchas cosas por default