Hola,
Estoy empezando con esto de EJB 3 y JPA. Mi entorno es un servidor OAS (Oracle Application Server) y una BBDD Oracle. He generado mi Entity a traves de ingenieria inversa (solo utilizo uno para la prueba). Utilizo eclipselink.
Este es mi persistence.xml:
<?xml version="1.0" encoding="utf-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="Persisntencia" transaction-type="JTA">
<provider>oracle.toplink.essentials.PersistencePro vider</provider>
<jta-data-source>datasource</jta-data-source>
<class>persistencia.TcomSeq</class>
<properties>
<property name="toplink.logging.level" value="INFO"/>
</properties>
</persistence-unit>
</persistence>
Mi Entity, como digo ha sido generado por ingenieria inversa con las correspondientes anotaciones de EJB 3. Está desplegado correctamente en el servidor.
Crea la entidad:
private static final String UNIDAD_DE_PERSISTENCIA = "Persisntencia";
EntityManager em = null;
public EntityFactory ()
{
EntityManagerFactory factory = Persistence.createEntityManagerFactory(UNIDAD_DE_P ERSISTENCIA);
em = factory.createEntityManager();
em.getTransaction().begin();
}
Después de esto, voy a acceder al Entity en cuestión:
public void prueba()
{
TcomSeq u = new TcomSeq();
u.setSeqName("PEPE");
u.setSeqValue(new BigDecimal(100));
ef.getEM().persist(u);
ef.getEM().flush();
ef.commit();
}
Y una vez realizado esto, falla y aparece el siguiente stacktrace:
10/09/17 08:42:27 java.lang.IllegalArgumentException: Object: persistencia.TcomSeq@7f800f is not a known entity type
.
10/09/17 08:42:27 at oracle.toplink.essentials.internal.sessions.UnitOf WorkImpl.registerNewObjectForPersist(UnitOfWorkImp l.java
:3218)
10/09/17 08:42:27 at oracle.toplink.essentials.internal.ejb.cmp3.base.E ntityManagerImpl.persist(EntityManagerImpl.java:22 1)
Alguién sabría decirme que me puede estar pasando¿?
Gracias de antemano.