Hibernate @test de charge n'est jamais invoquée
Regardé plusieurs forums mais je n'ai pas trouvé de réponse...des choses Simples, la méthode annotée avec @test de charge n'est jamais appelé...ajouté auditeur via @EntityListeners mais le problème demeure. Je suis à l'aide d'une SessionFactory en fonction de la configuration.
Vous devez vous connecter pour publier un commentaire.
Les EJB3
@PostLoad
annotation ne fonctionne pas lors de l'utilisation d'unSessionFactory
en fonction de la configuration, de la post-charge méthode ne sera jamais appelé.Utiliser Hibernate Les intercepteurs ou d'événements ou un
EntityManager
en fonction de la configuration.Il est également une alternative à hibernate intercepteurs ou des événements approche lors de l'utilisation d'une SessionFactory: la mise en œuvre de Cycle de vie interface.
Voici comment faire pour activer la JPA du post-op, les annotations en veille prolongée 5.
De Hibernate
IntegratorServiceImpl
utilise lejava.util.ServiceLoader
API, donc nous pouvons spécifier une liste supplémentaire deorg.hibernate.integrator.spi.Integrator
implémentations nous voulons laSessionFactory
à utiliser.Tout ce que nous devons faire est de spécifier un fournisseur de services dans
META-INF/services/org.hibernate.integrator.spi.Integrator
:Vous aurez également besoin de s'assurer que "
hibernate-entitymanager
jarre de la version appropriée à votre classpath.our.custom.JpaAnnotationsIntegrator
(prises deorg.hibernate.jpa.event.spi.JpaIntegrator
):J'ai aussi eu du mal à faire ce travail sur Hibernate4, à l'aide de la fabrique de session.
J'ai trouvé la solution assez simple, mais ce n'est pas documenté n'importe où à l'aide de l'Intégrateur (Apparemment la Hibernate4 la façon de traiter avec SessionFactory et les auditeurs).
Le hibernate-entitymanager projet fournit un Intégrateur pour ajouter la auditeurs de lien EJB3 du annotations @test de charge, ... à la session de l'usine. Il suffit de déclarer la classe JpaIntegrator la SPI façon.
Concrètement, il suffit d'ajouter un fichier nommé org.mise en veille prolongée.intégrateur.le spi.Intégrateur dans le META-INF/services dossier et de déclarer la mise en œuvre de la classe en elle (org.mise en veille prolongée.ejb.de l'événement.JpaIntegrator)
Ou activer la mise en veille prolongée sont des écouteurs d'événement qui gèrent JPA rappels. C'est exactement ce que l'OURLET ne. Comment ce qui est fait est différente entre Hibernate 3 et Hibernate 4 (vous n'avez jamais mentionné la version que vous utilisez); consultez la documentation pour plus de détails sur (a) les écouteurs d'événement en cause et (b) comment spécifier un ensemble personnalisé d'auditeurs.