Estoy intentando crear una instancia de una clase genérica en la primavera, pero me da siguiente excepción:crear instancias de frijol clase genérica en la primavera
inicialización de frijol fracasó; la excepción anidada es org.springframework.aop.framework.AopConfigException: No se pudo generar la subclase CGLIB de la clase [class football.dao.jpa.GenericJpaDAO]: Las causas comunes de este problema incluyen el uso de una clase final o una clase no visible; excepción anidada es java.lang.IllegalArgumentException: Superclass tiene constructores nulos pero no se proporcionaron argumentos:
Esta es la configuración XML para el envase de primavera:
<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>
Esta es la clase genérica:
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
}
No estoy seguro de qué podría estar causando esto. Agradecería cualquier idea.
Spring 4 with Objenesis permite el proxying de clases sin un constructor predeterminado (es decir: no-arg), consulte https://jira.springsource.org/browse/SPR-3150 – tukushan