0 Replies Latest reply on Jul 18, 2007 4:11 AM by yoav200

    multiple persistence

    yoav200

      Hello,

      i have a webapp build with seam, ejb3 and JSF on jboss.
      i deploy it as ear archive that contain a war and some jar files.
      few jars has persistence entities (all on same DB).

      what i did is put persistence.xml in all jars that has entities, in all persistence i call the same factory.

      in the components.xml (seam) that is in the war i have declared an entityManager.

      the idea is to have one entity manager for all persistence entities.
      when i deploy to jboss i see that hibernate recognize all my entities and when i debug my DAO object (that the entityManager inject into) the em is NOT null but for some reason iget an exception that one of my entity is Unknown [javax.ejb.EJBTransactionRolledbackException: java.lang.IllegalArgumentException: Unknown entity: com.mobimate.account.domain.Account]
      here is my persistence.xml:

      <?xml version="1.0" encoding="UTF-8"?>
      <persistence xmlns="http://java.sun.com/xml/ns/persistence"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"
       xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
      
       <persistence-unit name="account">
       <jta-data-source>java:/jdbc/wml</jta-data-source>
       <properties>
       <property name="jboss.entity.manager.factory.jndi.name"
       value="java:/wmlEntityManagerFactory" />
       <property name="hibernate.dialect"
       value="org.hibernate.dialect.MySQLInnoDBDialect" />
       </properties>
       </persistence-unit>
      
      </persistence>
      

      and here is my components.xml:
      ....
      <component name="wmlEntityManager"
       class="org.jboss.seam.core.ManagedPersistenceContext" auto-create="true">
       <property name="persistenceUnitJndiName">java:/wmlEntityManagerFactory</property>
       </component>
      .....
      

      and the DAO:
      ....
      @Name("genericDao")
      public abstract class GenericDaoImpl<T> implements GenericDao<T> {
      
       @In(value="wmlEntityManager")
       EntityManager em;
      
       public T get(Serializable id) {
       return em.find(getPersistentClass(), id);
       }
      ......
      

      i get the exception in the find.
      what am i doing wrong ?

      thanks