with stored query nativas namednativequery createnativequery create consultas java hibernate orm jpa interface

java - stored - Interfaces de mapeo JPA



query native java (2)

También puede presentar una clase abstracta sin eliminar la interfaz.

// not an entity public interface Account { public void doStuff(); } @Entity public abstract class BaseAccount { public void doStuff(); } @Entity public class OverSeasAccount extends AbstractAccount { public void doStuff() { ... } } @Entity public class OverDrawnAccount extends AbstractAccount { public void doStuff() { ... } }

Tengo problemas para crear una asignación cuando el tipo de lista es una interfaz. Parece que necesito crear una clase abstracta y usar la columna de discriminador ¿es este el caso? Preferiría no tener que hacerlo ya que la clase abstracta solo contendrá un método abstracto y prefiero mantener la interfaz.

Tengo una interfaz, llamémosla Cuenta

public interface Account { public void doStuff(); }

Ahora tengo dos implementadores concretos de Account OverSeasAccount y OverDrawnAccount

public class OverSeasAccount implements Account { public void doStuff() { //do overseas type stuff } }

Y

public class OverDrawnAccount implements Account { public void doStuff() { //do overDrawn type stuff } }

Tengo una clase llamada Trabajar con una lista

private List<Account> accounts;

Estoy mirando los campos de discriminación, pero parece que solo puedo hacer esto para las clases abstractas. ¿Es este el caso? Cualquier puntero apreciado. ¿Puedo usar discriminadores para interfaces?


Creo que es posible hacer que una interfaz sea el supertipo de un mapeo. Sin embargo, es posible que no puedas usar anotaciones. Las anotaciones funcionan bien con los archivos de configuración xml, por lo que es posible que deba agregar un archivo de configuración de hibernación a su proyecto con las asignaciones que necesita. Pero podrás guardar las anotaciones para el resto de tu proyecto.

Este problema lo analiza más. Parece que termina con una sugerencia sobre cómo hacerlo con anotaciones, quién sabe. Sugeriría que xml es aún más seguro por ahora Esta página de los documentos explica el mapeo xml necesario.