Consultas varias #383
-
Buenas @gastonprieto, tenia dudas con la clase del viernes pasado Me pareció escuchar que se mencionaba algo de que las transacciones y los tests lo hacía todo la biblioteca de tests (en referencia a los settings de la DB) pero no entendí, o sea, que en los test no tenemos que poner el @entity ni nada porque lo hace automáticamente el framework? EDIT: Cuál es la clase que hay que ver por el feriado? La que dice ver las últimas dos horas? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
¡Hola!
La columna discriminadora es esencial para poder implementar una estrategia de mapeo de herencia Single Table (STI), porque de lo contrario, no es posible saber a qué clase corresponde una determinada fila.
Joined es otra estrategia de mapeo de herencia, al igual que Single Table o Table Per Class. A diferencia de single table, en la que todas las instancias de una jerarquía de herencia se mapean a filas en una una única tabla, en joined se mapean a filas de múltiples tablas, cada una representando una clase de la jerarquía (ya sea concreta o abstracta). Te sugiero ver la sección 5.2 del apunte, en la que encontrarás ejemplos de cómo se mapea a tablas, y la sección 5.4, en la que encontrarás una comparativa.
Esto es correcto, bajo la estrategia Joined en general la numeración es única: no habrá dos instancias dentro de la misma jerarquía que compartan el mismo ID. Eso es resuelto por el propio framework, que genera los IDs de la PK en la tabla correspondiente a la clase (típicamente abstracta) común, y luego utiliza al mismo valor de ID en las FKs correspondientes de las clases hijas.
Acá no te estoy siguiendo. Los tests no son entidades, porque representan objetos persistentes. Luego, si querés que los tests sean transaccionales, JPA/Hibernate tampoco hace nada por vos: sos completamente responsable de abrir y deshacer transacciones en los mismos para que los objetos persistidos en ellos no perduren realmente. Sin embargo, en general los frameworks que se paran encima de los ORMs ofrecen abstracciones similares a las de un test transaccional. Por ejemplo, si usás
Sí te referís al 19/8, sí. Si te referís a 2/9, no, es el video de la clase 14. |
Beta Was this translation helpful? Give feedback.
¡Hola!
La columna discriminadora es esencial para poder implementar una estrategia de mapeo de herencia Single Table (STI), porque de lo contrario, no es posible saber a qué clase corresponde una determinada fila.
@DiscriminatorValue
sirve para establecer los posibles valores de ese discriminador, mientras que@DiscriminatorColumn
establece el nombre de dicha columna. Para más información, te sugiero consultar la sección 5.3 del apunte, la documentación, la guía de anotaciones y/o volver a ver la clase del año pasado (clase 14, minuto 1:30:00 aprox) o la del…