Всем привет. Подскажиет пж-та у меня есть след. иерархия классов: EntityBase
Код | @MappedSuperclass public abstract class EntityBase { @Id private Long id; ... }
|
NamedObject
Код | @MappedSuperclass public abstract class NamedObject extends EntityBase { @Column (name = "name", nullable = false, length = 100) private String name; ... }
|
User
Код | @Entity public class User extends NamedObject { @Basic private String email;
@Basic private String password; .... }
|
Вопрос следущем, возможно ли так сделать маппинг, или в чем я ошибся? Написал тест для сохранения
Код | @Test public void testCreateUser() { EntityManagerFactory emf = Persistence.createEntityManagerFactory("SimpleSQL"); EntityManager em = emf.createEntityManager(); EntityTransaction et = em.getTransaction(); et.begin(); try { User user = new User("test_user", "[email protected]", "qwertyu"); em.persist(user); et.commit(); } finally { if (et.isActive()) et.rollback(); em.close(); } ... }
|
Падает ошибка
Код | java.lang.IllegalArgumentException: out of field index :3 at simplesql.core.entity.EntityBase.jdoCopyField(EntityBase.java) at simplesql.core.entity.EntityE.jdoCopyField(EntityE.java) at simplesql.core.entity.EntityE.jdoCopyFields(EntityE.java)
|
Как можно сделать маппинг в таком случае? Использую DataNucleus |