首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.IllegalArgumentException in Spring-data-Jpa

java.lang.IllegalArgumentException in Spring-data-Jpa
EN

Stack Overflow用户
提问于 2011-08-03 18:26:21
回答 1查看 14.8K关注 0票数 5

我得到一个例外

代码语言:javascript
复制
<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>

我的存储库被定义为

代码语言:javascript
复制
<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>

我的实体是

代码语言:javascript
复制
<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是

代码语言:javascript
复制
<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中的每个域实体

代码语言:javascript
复制
<?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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-25 06:17:36

您看到发布的异常的原因是,我们吞下了EntityManager试图从Metamodel中查找EntityType时抛出的异常。我创建了JIRA问题来跟踪它。

一般来说,需要显式地列出类取决于JPA持久性提供程序的设置。其中一些可以配置为扫描包中的实体。另一些则要求至少列出根类。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6931331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档