Level 2 Flashcards

1
Q

¿Cuál es la diferencia entre load() y get() ?

A

Si se está seguro de que el objeto existe, se utiliza load(). En caso contrario, se utiliza alguno de los métodos get().

Si el id único no se encuentra en la DB, el método load() arroja una excepción, mientras que el método get() regresa nulo.

load() regresa un proxy por default y la DB no será tocada hasta que el proxy sea invocado por primera vez. get() consulta la DB inmediatamente.

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

¿Cuál es la diferencia entre merge y update?

A

Use update() si está seguro de que la sesión no contiene una instancia persistente con el mismo identificador.

Use merge() si quiere mezclar las modificaciones realizadas hasta el momento sin considerar el status de la sesión.

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

¿Cómo defines una secuencia para generar una llave primaria en Hibernate?

A

Usando la etiqueta <generator></generator>

<id><br></br> <generator><br></br> <param></param>SEQUENCE_NAME<br></br> <generator><br></br> </generator></generator></id>

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

Define las opciones cascada e inversa en un mapeo uno a muchos

A

Cascada permite que las operaciones afecten las entidades hijas (dependientes).

Puede tomar el valor: all, none, save-update, delete, all-delete-orphan

Inversa - marca la colección como la “inversa” de una relación bidireccional.

Indica qué extremo de la relación debe ignorarse, de forma que al persistir un padre que tiene una colección de hijos, debe preguntar al padre por la lista de hijos o preguntar a los hijos, quién es su padre.

Puede tomar el valor: true o false

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

¿Qué se entiende por Named SQL Query?

A

Estos queries son definidos en el mapeo XML e invocados donde quiera que sea necesario.

Ejemplo:

Se define:

<sql-query name=”empdetails” >

<return alias=”emp” class=”com.test.Employee” />

  SELECT emp.EMP\_ID AS {emp.empid},
              emp.EMP\_ADDRESS AS {emp.address},
              emp.EMP\_NAME AS {emp.name}
   FROM Employee EMP WHERE emp.NAME LIKE :name

</sql-query>

Y se invoca:

List people = session.getNamedQuery(“empdetails”)
.setString(“TomBrady”, name)
.setMaxResults(50)
.list();

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

¿Cómo se invocan los Stored Procedures?

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