1
00:00:00,360 --> 00:00:06,420
En esta clase vamos a crear el componente, la clase de acceso dato dado es una clase de persistencia

2
00:00:06,630 --> 00:00:08,520
que se encarga de acceder a los datos.

3
00:00:08,650 --> 00:00:12,060
La vamos a implementar con el Entity Manager de JPA.

4
00:00:12,150 --> 00:00:17,420
Primero vamos a crear el package en Models con click derecho New Package.

5
00:00:18,580 --> 00:00:23,680
En vez de Entity vamos a colocar daho de data access object.

6
00:00:25,090 --> 00:00:28,480
Vamos a crear una interfaz antes de crear la clase.

7
00:00:28,540 --> 00:00:33,930
Contiene el protocolo de comportamiento, es decir, los métodos que tienen que implementar la clase

8
00:00:33,970 --> 00:00:34,270
DAO.

9
00:00:39,250 --> 00:00:43,270
Entonces tenemos y de interfaz cliente Dao finalizar.

10
00:00:43,870 --> 00:00:45,430
Vamos a crear un método.

11
00:00:48,670 --> 00:00:51,040
Va a retornar una lista de cliente.

12
00:00:54,270 --> 00:00:58,040
Cliente de la clase Entity, que está pegada a la tabla.

13
00:00:58,130 --> 00:01:03,200
El método Find Holl, es decir, retornar todos.

14
00:01:03,290 --> 00:01:09,320
Ahí tenemos la interfaz con un método que tienen que implementar toda la clase que implementan la interfaz.

15
00:01:09,410 --> 00:01:14,150
Una firma sin implementar simplemente indica el nombre del método.

16
00:01:15,050 --> 00:01:26,300
Guardamos y vamos a crear la clase dentro del mismo package new class cliente dado implemento imple

17
00:01:26,420 --> 00:01:27,500
de implementar.

18
00:01:27,680 --> 00:01:34,640
Bueno, acá podemos agregar la interfaz, por ejemplo, agregar otro cliente dado.

19
00:01:36,920 --> 00:01:40,640
Finalizar, crea la clase con la implementación de forma automática.

20
00:01:42,060 --> 00:01:51,630
Si queremos implementar a mano, implementas y cliente dado y acá nos marca un error y nos paramos por

21
00:01:51,660 --> 00:01:59,070
sobre la clase y agregamos agregar método no implementado, automáticamente implementa el método de

22
00:01:59,070 --> 00:02:00,720
la interfaz que es obligatorio.

23
00:02:00,960 --> 00:02:05,010
El siguiente paso es decorar la clase con la anotación Repository.

24
00:02:06,810 --> 00:02:13,000
Es una anotación de Spring para marcar la clase como componente de persistencia de acceso a datos.

25
00:02:13,680 --> 00:02:19,170
Internamente el repository es un estereotipo de la clase component y por lo tanto marca la clase como

26
00:02:19,170 --> 00:02:22,890
componentes Blinky y lo registra dentro del contenedor de Spring.

27
00:02:23,010 --> 00:02:27,180
Lo marca como un tipo o estereotipo repository.

28
00:02:27,630 --> 00:02:34,620
Un repository que aparte de ser un Vinz de acceso a datos, se encarga de traducir correctamente y con

29
00:02:34,620 --> 00:02:38,070
detalle las excepciones que pueden ocurrir errores.

30
00:02:38,160 --> 00:02:45,630
Por ejemplo, el tag taxes es empachos, da un mejor detalle y mucho más fácil de interpretar los errores.

31
00:02:47,030 --> 00:02:49,040
Luego tenemos que tener el enteritis manager.

32
00:02:55,670 --> 00:03:00,020
El Interim Manager se encarga de manejar las clases de entidades.

33
00:03:00,110 --> 00:03:08,450
El ciclo de vida la persiste dentro del contexto, las actualiza, las elimina, puede realizar consultas,

34
00:03:08,540 --> 00:03:14,540
es decir, todas las operaciones a la base datos, pero nivel de objeto a través de las clases Entity.

35
00:03:14,570 --> 00:03:21,770
Por lo tanto, la consulta son siempre consulta de JPA, son consultas que van a la clase ENTITY, no

36
00:03:21,770 --> 00:03:22,370
a la tabla.

37
00:03:22,670 --> 00:03:29,690
Recordemos que la clase está mapea la tabla y justamente acá en el Fenol vamos a realizar una consulta

38
00:03:29,690 --> 00:03:31,010
con Crédit Query.

39
00:03:34,650 --> 00:03:39,840
From la clase cliente, con mayúscula y en singular.

40
00:03:40,200 --> 00:03:44,220
Punto G result list y acá retorna el Estado cliente.

41
00:03:45,150 --> 00:03:48,150
Acá lanza un Warne no hay ningún tipo de error.

42
00:03:48,270 --> 00:03:51,150
Más que nada un Warne propio de Eclipse.

43
00:03:52,120 --> 00:03:58,480
Usamos su pres Warne para suprimir el mensaje, faltaría agregar la anotación transaccional.

44
00:04:06,720 --> 00:04:12,510
Con esta anotación marcamos el método como transaccional y le colocamos solamente de lectura, ya que

45
00:04:12,510 --> 00:04:21,030
es una consulta cuando es un insert, un persis, ahí podemos omitir el rrea only, ya que no es solamente

46
00:04:21,030 --> 00:04:23,880
lectura, sino también de escritura transaccional.

47
00:04:23,940 --> 00:04:30,300
Es una anotación que va a tomar el contenido del método, lo va a envolver dentro de una transacción.

48
00:04:30,420 --> 00:04:32,670
Eso le faltaría inyectar el entretén manager.

49
00:04:32,790 --> 00:04:37,710
Utilizamos la anotación pertinente context que contiene la unidad de persistencia.

50
00:04:44,470 --> 00:04:51,400
De forma automática iba a inyectar el Tim Manager según la configuración de la unidad de persistencia

51
00:04:51,550 --> 00:04:58,690
que contiene el DataSource que contiene el proveedor JPA Por defecto, si no configuramos ningún tipo

52
00:04:58,840 --> 00:05:05,800
de base dato ningún tipo de motor en el application property de forma automática, Spring Boot va a

53
00:05:05,800 --> 00:05:08,230
utilizar la base de datos H2.

54
00:05:09,480 --> 00:05:11,500
Embebida en nuestra aplicación.

55
00:05:13,560 --> 00:05:19,800
Pero si tenemos que tener la dependencia, si configuramos el DataSource, va a utilizar esa configuración.

56
00:05:19,890 --> 00:05:27,120
Por ahora vamos a utilizar HWI, ya que es la configuración por defecto y después vamos a trabajar con

57
00:05:27,300 --> 00:05:28,080
Moise cueles.

58
00:05:28,260 --> 00:05:34,590
La clase dado por ahora la vamos a dejar con el método Find All con el método Listar.

59
00:05:34,710 --> 00:05:42,150
Después vamos a ir completando el ejemplo y vamos a agregar el CRUD completo para crear, para editar

60
00:05:42,240 --> 00:05:44,430
y eliminar y también buscar por Heidy.

61
00:05:44,550 --> 00:05:50,910
En la próxima clase vamos a implementar el controlador, vamos a crear el controlador para listar los

62
00:05:50,910 --> 00:05:51,600
clientes.

63
00:05:51,690 --> 00:05:52,710
Quedamos hasta acá.

64
00:05:52,920 --> 00:05:54,360
Les habló el profesor.

65
00:05:54,450 --> 00:05:55,290
Hasta la próxima.
