Problème de l'instanciation de la classe générique haricot au Printemps
J'essaie d'instancier une classe générique au Printemps, mais j'obtiens l'exception suivante:
Initialisation du bean n'a pas; nested exception est
org.springframework.aop.cadre.AopConfigException: impossible de générer CGLIB sous-classe de la classe [classe de football.dao.jpa.GenericJpaDAO]: les causes les plus Courantes de ce problème consiste à utiliser un final de classe ou d'un non-visible de la classe; nested exception java.lang.IllegalArgumentException: Superclasse n'a pas la valeur null constructeurs, mais non les arguments ont été donnés:
C'est la configuration XML pour le Printemps conteneur:
<bean id="clubDAO" class="football.dao.jpa.GenericJpaDAO">
<constructor-arg type="EntityManagerFactory" ref="entityManagerFactory"/>
<constructor-arg type="Class" value="football.model.entities.ClubEntity"/>
<constructor-arg type="String" value="ClubEntity"/>
</bean>
C'est la classe générique:
public class GenericJpaDAO <T extends HavingID> {
private EntityManager em;
private Class entityClass;
private String entityName;
public GenericJpaDAO( Class entityClass, String entityName,
EntityManagerFactory emFactory ) {
this.entityClass = entityClass;
this.entityName = entityName;
em = emFactory.createEntityManager();
}
@Transactional
public void create( T entity ) {
em.persist( entity );
}
//more methods
}
Je ne suis pas vraiment sûr de ce que pourrait en être la cause. Je vous serais reconnaissant de toutes les idées.
OriginalL'auteur prasopes | 2010-10-19
Vous devez vous connecter pour publier un commentaire.
Ce problème n'est pas lié à des génériques, c'est une limitation de Spring AOP.
Si les aspects (y compris
@Transactional
aspect) sont appliquées à la classe à l'aide de CGLIB proxy (ce qui arrive si l'objectif de la classe n'implémente pas toutes les interfaces ou si l'AOP est configuré avecproxy-target-class = "true"
), constructeur sans argument est requis:Voir aussi:
OriginalL'auteur axtavt