我得到一个例外
<code>
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'auditTrailRepository': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: [Assertion failed] - this argument is required; it must not be null
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:102)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1429)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:84)
at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:1)
at org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:280)
at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:304)
... 24 more
Caused by: java.lang.IllegalArgumentException: [Assertion failed] - this argument is required; it must not be null
at org.springframework.util.Assert.notNull(Assert.java:112)
at org.springframework.util.Assert.notNull(Assert.java:123)
at org.springframework.data.jpa.repository.support.SimpleJpaRepository.<init>(SimpleJpaRepository.java:74)
at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:94)
at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:69)
at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:146)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:120)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:39)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
... 35 more
</code>我的存储库被定义为
<code>
public interface AuditTrailRepository extends CrudRepository<AuditTrail, Long>, JpaSpecificationExecutor<AuditTrail> {
public List<AuditTrail> findByKey(String key);
@Query("select u from AuditTrail u where u.createdDate between :startDate and :endDate ")
List<AuditTrail> findByDateRange(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
@Query("select u from AuditTrail u where u.createdDate between :startDate and :endDate and key = :clientId ")
List<AuditTrail> findByDateRangeForClient(@Param("startDate") Date startDate,
@Param("endDate") Date endDate,
@Param("ClientId") String clientId);
}
</code>我的实体是
<code>
@Entity
@Table(name = "AUDIT_TRAIL")
public class AuditTrail extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = -1647646453787027659L;
private Long id;
// ClientID from
private String key;
private TaskType taskType;
// Inbound / Outbound
private FileActionType action;
private String userName;
private String message;
private Date startTime;
private Date endTime;
</code>WEB/classes/META中的persistance.xml是
<code>
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="spring-jpa" />
</persistence>
</code>任何帮助都将不胜感激。
在这里回答我自己的问题.
唯一对我有效的是列出persistence.xml中的每个域实体
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="spring-jpa" >
<class>com.multiplan.edi.common.domain.AuditTrail</class>
</persistence-unit>
</persistence>发布于 2011-08-25 06:17:36
您看到发布的异常的原因是,我们吞下了EntityManager试图从Metamodel中查找EntityType时抛出的异常。我创建了JIRA问题来跟踪它。
一般来说,需要显式地列出类取决于JPA持久性提供程序的设置。其中一些可以配置为扫描包中的实体。另一些则要求至少列出根类。
https://stackoverflow.com/questions/6931331
复制相似问题