Announcement Announcement Module
Collapse
No announcement yet.
InvalidDataAccessResourceUsageException on simple query after upgrade Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • InvalidDataAccessResourceUsageException on simple query after upgrade

    Hi,
    After upgrading to:
    spring-data-neo4j - 2.1.0.BUILD-SNAPSHOT and neo4j - 1.7, on an DAO with the following method:
    Privilege findByName(final String name);
    I'm not getting:

    Code:
    org.springframework.dao.InvalidDataAccessResourceUsageException: Error executing statement start `privilege`=node:__types__(className="com.geogrep.persistence.entity.Privilege") where `privilege`.`name`! = {0} return `privilege`; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: Error executing statement start `privilege`=node:__types__(className="com.geogrep.persistence.entity.Privilege") where `privilege`.`name`! = {0} return `privilege`; nested exception is org.neo4j.cypher.MissingIndexException: Index `__types__` does not exist
    	at org.springframework.data.neo4j.support.query.CypherQueryEngine.query(CypherQueryEngine.java:56) ~[spring-data-neo4j-2.1.0.BUILD-20120504.181520-147.jar:na]
    	at org.springframework.data.neo4j.repository.query.GraphRepositoryQuery.dispatchQuery(GraphRepositoryQuery.java:96) ~[spring-data-neo4j-2.1.0.BUILD-20120504.181520-147.jar:na]
    	at org.springframework.data.neo4j.repository.query.GraphRepositoryQuery.execute(GraphRepositoryQuery.java:70) ~[spring-data-neo4j-2.1.0.BUILD-20120504.181520-147.jar:na]
    	at org.springframework.data.neo4j.repository.query.DerivedCypherRepositoryQuery.execute(DerivedCypherRepositoryQuery.java:36) ~[spring-data-neo4j-2.1.0.BUILD-20120504.181520-147.jar:na]
    	at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:313) ~[spring-data-commons-core-1.3.0.RC2.jar:na]
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
    	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) ~[spring-tx-3.1.1.RELEASE.jar:3.1.1.RELEASE]
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
    	at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:155) ~[spring-tx-3.1.1.RELEASE.jar:3.1.1.RELEASE]
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
    	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
    	at $Proxy52.findByName(Unknown Source) ~[na:na]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_04]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_04]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_04]
    	at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_04]
    	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
    	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196) ~[spring-aop-3.1.1.RELEASE.jar:3.1.1.RELEASE]
    	at $Proxy53.findByName(Unknown Source) ~[na:na]
    	at com.geogrep.persistence.service.privilege.PrivilegeService.findByName(PrivilegeService.java) ~[classes/:na]
    Being autogenerated, this worked just fine with the stable spring-data-neo4j version, so I'm assuming this is a bug in the SNAPSHOT.
    Any feedback on this is appreciated.
    Thanks.
    Eugen.

  • #2
    Thanks Eugen for pointing this out, could you please raise a JIRA issue, I'll fix it.

    Michael

    Comment


    • #3
      The reason being that cypher now checks for indexes that are used in a query, and in your case the type index was not created upfront.

      Comment


      • #4
        Thanks for the quick reply.
        So, should the index have been created?
        The new JIRA is: https://jira.springsource.org/browse/DATAGRAPH-232
        Eugen.

        Comment


        • #5
          Yep, as a workaround you can do as a very first operation
          Code:
          template.createIndex("__types__",null)
          Unfortunately the fix didn't make it into the RC1 release which was already underway, but it will be in the 2.1.0.GA

          Sorry

          Michael

          Comment


          • #6
            OK, thanks.
            I'll probably start depending on the SNAPSHOT versions so that I can use these queries.
            Eugen.

            Comment

            Working...
            X