В руководстве JPA говорится, что можно иметь не-сущность, расширяющую класс сущности:
Сущности могут расширять как сущность, так и
классы не-сущности и не-сущности
классы могут расширять классы сущностей. - http://java.sun.com/javaee/5/docs/tutorial/doc/bnbqa.html
Можно ли сохранить такую структуру?
Я хочу сделать это:
@Entity
abstract class Test { ... }
class FirstConcreteTest extends Test { ... } // Non-ntity
class SecondConcreteTest extends Test { ... } // Non-entity
Test test = new FirstConcreteTest();
em.persist(test);
Что я хотел бы сделать, это сохранить все поля, отображенные в абстрактном Test, в общую таблицу базы данных для всех конкретных классов (первого и второго), оставив все поля первого и второго тестового класса без сохранения (они могут содержать такие вещи, как EJB, пулы jdbc и т. Д.).
И бонусный вопрос. Можно ли сохранить абстрактное свойство тоже?
@Entity
abstract class Test {
@Column
@Access(AccessType.PROPERTY)
abstract public String getName();
}
class SecondConcreteTest extends Test {
public String getName() {
return "Second Concrete Test";
}
}