J'ai trouvé une partie de la réponse.
Dans le fichier persistence.xml, on peut définir une liste de classes supplémentaires pour une unité de persistence avec des tags class. Ca donne quelque chose comme ça :
Code:
<persistence-unit name="t4Seam">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/jdbc/t4Seam</jta-data-source>
<class>t4.core.utils.process.internal.Process</class>
<class>t4.core.utils.process.internal.ProcessFeature</class>
<class>t4.core.utils.process.internal.ProcessSetting</class>
<class>t4.core.utils.process.internal.ProcessTemplate</class>
<class>t4.core.utils.right.internal.Role</class>
<class>t4.core.utils.right.internal.ProcessRight</class>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="false"/>
</properties>
</persistence-unit>
Il suffit ensuite que le jar contenant les entities soit dans le classpath et ça fonctionne.
Sauf qu'au niveau maintenance c'est pas terrible : si je rajoute des entities supplémentaires dans l'autre jar, il faut que je les rajoute à la main dans le persistence.xml pour qu'elles soient connues de ma persistence unit. Je voudrais donc plutôt donner un jar et laisser Hibernate y rechercher les entities. D'après ce que j'ai compris, c'est ce que permet de faire la propriété jar-file. Ca donne quelque chose comme ça :
Code:
<persistence-unit name="t4Seam">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/jdbc/t4Seam</jta-data-source>
<jar-file>t4-core-utils-core-1.0-SNAPSHOT.jar</jar-file>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="false"/>
</properties>
</persistence-unit>
Mais je n'arrive pas à faire fonctionner cette config car je ne vois pas ce qu'il faut donner comme valeur à jar-file. L'idéal serait que Hibernate recherche dans le classpath, mais ça ne semble pas être le cas puisque le chemin du jar est un chemin relatif à la racine du jar contenant la persistence unit. Le problème, c'est que j'utilise Maven pour gérer les dépendances et du coup le jar n'est pas accessible par un chemin relatif. Quelqu'un a une idée sur comment résoudre ce problème ?
Merci d'avance ;)