在用JPA的时候遇到个问题,请各路大神指点一下,谢谢!ItgDepartment 部门entity里面有个parentId字段,配置如下@ManyToOne(fetch = FetchType.EAGER,optional=true)
@Fetch(FetchMode.SELECT)
@JoinColumn(name = "parent_id")
private ItgDepartment parent;部门表数据:
id    code    name        parent_id    weight
1      000     管理部       0                  1
2      001   子部门1       1                  0
8      002   子部门2       1                  0
10    003   子部门3       1                   0
但是findAll的时候,报错,提示找不到id为0的部门对象,这个该怎么解决?
另外,如果我需要按照parent_id来查询(不写HQL),repository中的接口该怎么写?谢谢!

解决方案 »

  1.   

    错误提示:org.springframework.orm.jpa.JpaObjectRetrievalFailureException: 
          Unable to find com.org.yd.dao.organization.entity.ItgDepartment with id 0; nested exception is javax.persistence.EntityNotFoundException: 
          Unable to find com.org.yd.dao.organization.entity.ItgDepartment with id 0
          at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:386) ~[spring-orm-4.1.9.RELEASE.jar:4.1.9.RELEASE]
          at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:223) ~[spring-orm-4.1.9.RELEASE.jar:4.1.9.RELEASE]
          at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:417) ~[spring-orm-4.1.9.RELEASE.jar:4.1.9.RELEASE]
          at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59) ~[spring-tx-4.1.9.RELEASE.jar:4.1.9.RELEASE]
          at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213) ~[spring-tx-4.1.9.RELEASE.jar:4.1.9.RELEASE]
          at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:147) ~[spring-tx-4.1.9.RELEASE.jar:4.1.9.RELEASE]
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
          at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:131) ~[spring-data-jpa-1.9.1.RELEASE.jar:na]
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
          at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) ~[spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
          at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) ~[spring-aop-4.1.9.RELEASE.jar:4.1.9.RELEASE]
          at com.sun.proxy.$Proxy70.findAll(Unknown Source) ~[na:na]
        ......
      

  2.   

    manytoone标签的问题。去掉标签试试