Nous avons une application Hibernate/Spring qui ont les suivants grains de printemps:Hibernate et les transactions de printemps - en utilisant les constructeurs privés/méthodes d'usine statiques
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" />
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" />
Lors du câblage de l'application, ensemble, nous obtenons l'erreur suivante lors de l'utilisation des constructeurs privés dans nos entités d'hibernation:
Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: No visible constructors in class 'ourclass'
Les entités sont des objets de domaine typiques tels qu'un employé ou similaire.
Lors d'un changement de modificateur de visibilité du constructeur à forfait (ou public) l'application fonctionne bien et les entités est stockée/chargé dans la base de données. Comment pouvons-nous/pouvons-nous utiliser des constructeurs privés/des méthodes d'usine statiques avec la gestion des transactions Spring/Hibernate?
Nous utilisons des annotations Hibernate pour cartographier les entités/relations. Aucune définition de bean n'est déclarée dans le fichier applicationContext.xml pour la classe de domaine liée au problème. C'est un pojo qui devrait avoir une méthode d'usine statique et un constructeur privé.
Comment pouvons-nous faire Hibernate (org.springframework.spring-orm.hibernate3 classes je suppose) faire usage de la méthode usine statique au lieu du constructeur? Ou peut-être faire appel à un constructeur privé si nécessaire?
En utilisant la configuration de printemps usine méthode aurait du sens, mais les entités ne sont pas cartographiés comme les haricots dans notre applicationContext.xml. Ils sont uniquement annotés avec l'annotation @Entity pour la persistance Hibernate.
espère que cette édition clearifies (plutôt que mystifie) la question. :)
Puisque ce sont les classes Hibernate avec org.springframework.spring-orm.hibernate qui causent des problèmes, je suis assez convaincu que c'est lié à Spring. Le AnnotationSessionFactoryBean est un suspect ... –