2017-10-09 21 views
2

J'essaie de faire fonctionner Neo4j, mais je finis par obtenir cette erreur lorsque je tente d'obtenir une entité, ou que je persiste à la faire, et ne peut pas le comprendre.Neo4j Impossible de définir java.lang.Long field model.Authority.id à model.Authority

Causée par: java.lang.IllegalArgumentException: Impossible de définir le champ java.lang.Long com.mycompany.mbi.dom.Authority.id à com.mycompany.mbi.dom.Authority à sun.reflect .UnsafeFieldAccessorImpl.throwSetIllegalArgumentException (UnsafeFieldAccessorImpl.java:167) ~ [na: 1.8.0_131] à sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException (UnsafeFieldAccessorImpl.java:171) ~ [na: 1.8.0_131] à sun.reflect.UnsafeFieldAccessorImpl .ensureObj (UnsafeFieldAccessorImpl.java:58) ~ [na: 1.8.0_131] à sun.reflect.UnsafeObjectFieldAccessorImpl.get (UnsafeObjectFieldAccessorImpl.java:36) ~ [na: 1.8.0_131] à java.lang.reflect.Field .get (Field.java:393) ~ [na: 1.8.0_13 1] à org.neo4j.ogm.metadata.FieldInfo.read (FieldInfo.java:373) ~ [neo4j-ogm-core-3.0.0-RC1.jar: na] à org.neo4j.ogm.metadata. FieldInfo.readProperty (FieldInfo.java:432) ~ [neo4j-ogm-core-3.0.0-RC1.jar: na] à org.neo4j.ogm.utils.EntityUtils.identity (EntityUtils.java:36) ~ [ neo4j-ogm-core-3.0.0-RC1.jar: na] à org.neo4j.ogm.context.EntityGraphMapper.mapEntity (EntityGraphMapper.java:211) ~ [neo4j-ogm-core-3.0.0-RC1. jar: na] à org.neo4j.ogm.context.EntityGraphMapper.map (EntityGraphMapper.java:132) ~ [neo4j-ogm-core-3.0.0-RC1.jar: na] à org.neo4j.ogm. session.delegates.SaveDelegate.save (SaveDelegate.java:79) ~ [neo4j-ogm-core-3.0.0-RC1.jar: na] à org.neo4j.ogm.session.delegates.SaveDelegate.save (SaveDelegate. java: 41) ~ [neo4j-ogm-core-3.0.0-RC1.jar: na] à org.neo4j.ogm.session.Neo4jSession.save (Neo4jSession.java:451) ~ [neo4j-ogm-core-3.0.0-RC1.jar: na] à sun.reflect.NativeMethodAccessorImpl.invoke0 (Méthode native) ~ [na: 1.8.0_131] à sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) ~ [na: 1.8.0_131] à sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) ~ [na: 1.8.0_131] à java.lang.reflect.Method.invoke (Method.java:498) ~ [na: 1.8.0_131] à org.springframework.data.neo4j.transaction.SharedSessionCreator $ SharedSessionInvocationHandler.invoke (SharedSessionCreator.java:131) ~ [spring-data-neo4j-5.0.0.RC2.jar: na] à com.sun.proxy. $ Proxy95.save (source inconnue) ~ [na: na] at org .springframework.data.neo4j.repository.support.SimpleNeo4jRepository.s ave (SimpleNeo4jRepository.java:73) ~ [spring-data-neo4j-5.0.0.RC2.jar: na] à sun.reflect.NativeMethodAccessorImpl.invoke0 (méthode native) ~ [na: 1.8.0_131] au soleil .reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) ~ [na: 1.8.0_131] à sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) ~ [na: 1.8.0_131] at java.lang .reflect.Method.invoke (Method.java:498) ~ [na: 1.8.0_131] à org.springframework.data.repository.core.support.RepositoryComposition $ RepositoryFragments.invoke (RepositoryComposition.java:377) ~ [source -data-commons-2.0.0.RC2.jar: na] à org.springframework.data.repository.core.support.RepositoryComposition.invoke (RepositoryComposition.java:200) ~ [spring-data-commons-2.0.0 .RC2.jar: na] à org.springframewor k.data.repository.core.support.RepositoryFactorySupport $ ImplementationMethodExecutionInterceptor.invoke (RepositoryFactorySupport.java:604) ~ [spring-data-commons-2.0.0.RC2.jar: na] à org.springframework.aop.framework. ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:185) ~ [spring-aop-5.0.0.RC3.jar: 5.0.0.RC3] à org.springframework.data.repository.core.support.RepositoryFactorySupport $ QueryExecutorMethodInterceptor.doInvoke (RepositoryFactorySupport.java:568) ~ [spring-data-commons-2.0.0.RC2.jar: na] à org.springframework.data.repository.core.support.RepositoryFactorySupport $ QueryExecutorMethodInterceptor.invoke (RepositoryFactorySupport.java:549) ~ [spring-data-commons-2.0.0.RC2.jar: na] à org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:185) ~ [spring-aop-5.0.0.RC3.jar: 5.0.0.RC3] à l'adresse org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke (DefaultMethodInvokingMethodInterceptor.java:60) ~ [spring-data-commons-2.0. 0.RC2.jar: na] à org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:185) ~ [spring-aop-5.0.0.RC3.jar: 5.0.0.RC3] à org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction (TransactionAspectSupport.java:294) ~ [spring-tx-5.0.0.RC3.jar: 5.0.0.RC3] à org.springframework.transaction.interceptor.TransactionInte rceptor.invoke (TransactionInterceptor.java:98) ~ [spring-tx-5.0.0.RC3.jar: 5.0.0.RC3] à org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:185) ~ [spring-aop-5.0.0.RC3.jar: 5.0.0.RC3] à org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke (PersistenceExceptionTranslationInterceptor.java:139) ~ [ressort-tx-5.0.0. RC3.jar: 5.0.0.RC3] à org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:185) ~ [spring-aop-5.0.0.RC3.jar: 5.0.0.RC3] à org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke (ExposeInvocationInterceptor.java:92) ~ [spring-aop-5.0.0.RC3.jar: 5.0.0.RC3] à org.springframework.aop.framework. ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:185) ~ [spring-aop-5.0.0.RC3.j ar: 5.0.0.RC3] à org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke (SurroundingTransactionDetectorMethodInterceptor.java:61) ~ [ressort-data-commons-2.0.0.RC2.jar: na] à org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:185) ~ [spring-aop-5.0.0.RC3.jar: 5.0.0.RC3] à org.springframework.aop.framework. JdkDynamicAopProxy.invoke (JdkDynamicAopProxy.java:212) ~ [spring-aop-5.0.0.RC3.jar: 5.0.0.RC3] à com.sun.proxy. $ Proxy101.save (source inconnue) ~ [na: na] à com.mycompany.mbi.security.InitSecurity.initApplication (InitSecurity.java:32) ~ [classes /: na] à sun.reflect.NativeMethodAccessorImpl.invoke0 (méthode native) ~ [na: 1.8.0_131] à sun.reflect.NativeMethodAccessorImpl.in voke (NativeMethodAccessorImpl.java:62) ~ [na: 1.8.0_131] à sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) ~ [na: 1.8.0_131] à java.lang.reflect.Method. invoke (Method.java:498) ~ [na: 1.8.0_131] à org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor $ LifecycleElement.invoke (InitDestroyAnnotationBeanPostProcessor.java:369) ~ [spring-beans-5.0.0. RC3.jar: 5.0.0.RC3] à org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor $ LifecycleMetadata.invokeInitMethods (InitDestroyAnnotationBeanPostProcessor.java:312) ~ [spring-beans-5.0.0.RC3.jar: 5.0. 0.RC3] à org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization (InitDestroyAnnotationBeanPostProcessor.java:135) ~ [spring-beans-5.0.0.RC3.ja r: 5.0.0.RC3] ...23 cadres communs omis

Mon entité:

@NodeEntity 
@public class Authority { 

public Authority() { 
} 

@Id 
@GeneratedValue 
private Long id; 

@NotNull 
@Size(min = 0, max = 50) 
private String name; 

public Long getId() { 
    return id; 
} 

public void setId(Long id) { 
    this.id = id; 
} 

public String getName() { 
    return name; 
} 

public void setName(String name) { 
    this.name = name; 
} 

@Override 
public String toString() { 
    return "Authority{" + 
     "name='" + name + '\'' + 
     "}"; 
} 

}

Mon fichier pom correspondant:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<artifactId>mbi-services</artifactId> 
<version>1.0.0-SNAPSHOT</version> 

<parent> 
    <groupId>com.mycompany.mbi</groupId> 
    <artifactId>mbi-all</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
</parent> 

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-dependencies</artifactId> 
      <version>${springBoot.version}</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-dependencies</artifactId> 
      <version>${springCloud.version}</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

<repositories> 
    <repository> 
     <id>spring-milestones</id> 
     <name>Spring Milestones</name> 
     <url>https://repo.spring.io/libs-milestone</url> 
     <snapshots> 
      <enabled>true</enabled> 
     </snapshots> 
    </repository> 
</repositories> 

<pluginRepositories> 
    <pluginRepository> 
     <id>jcenter</id> 
     <name>JCenter</name> 
     <url>https://jcenter.bintray.com/</url> 
    </pluginRepository> 
</pluginRepositories> 

<properties> 
    <!-- Plugin Properties --> 
    <sonar.version>2.5</sonar.version> 
    <springBoot.version>2.0.0.M3</springBoot.version> 
    <springBoot.maven.version>1.5.7.RELEASE</springBoot.maven.version> 
    <springCloud.version>Finchley.M2</springCloud.version> 

    <!-- Dependency Properties --> 
    <dropWizard.version>3.2.4</dropWizard.version> 
    <gsonExtras.version>0.2.1</gsonExtras.version> 
    <kassava.version>1.0.0</kassava.version> 
    <neo4jDriver.version>1.5.0-alpha01</neo4jDriver.version> 
    <neo4jOgmTest.version>3.0.0-RC1</neo4jOgmTest.version> 
    <passay.version>1.0</passay.version> 
    <randomBeans.version>3.7.0</randomBeans.version> 
    <result.version>1.2.0</result.version> 
    <slf4j.version>1.7.25</slf4j.version> 
</properties> 

<dependencies> 
    <!-- Compile Dependencies --> 
    <dependency> 
     <groupId>au.com.console</groupId> 
     <artifactId>kassava</artifactId> 
     <version>${kassava.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.github.kittinunf.result</groupId> 
     <artifactId>result</artifactId> 
     <version>${result.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.code.gson</groupId> 
     <artifactId>gson</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>io.dropwizard.metrics</groupId> 
     <artifactId>metrics-annotation</artifactId> 
     <version>${dropWizard.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.danilopianini</groupId> 
     <artifactId>gson-extras</artifactId> 
     <version>${gsonExtras.version}</version> 
    </dependency>  
    <dependency> 
     <groupId>org.neo4j.driver</groupId> 
     <artifactId>neo4j-java-driver</artifactId> 
     <version>${neo4jDriver.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.passay</groupId> 
     <artifactId>passay</artifactId> 
     <version>${passay.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>${slf4j.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-ext</artifactId> 
     <version>${slf4j.version}</version> 
    </dependency> 

    <!-- Spring Dependencies --> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-devtools</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-actuator</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-neo4j</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-security</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-mail</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-thymeleaf</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-starter-eureka</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.thymeleaf</groupId> 
     <artifactId>thymeleaf</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.thymeleaf</groupId> 
     <artifactId>thymeleaf-spring5</artifactId> 
    </dependency> 

    <!-- Test Dependencies --> 
    <dependency> 
     <groupId>io.github.benas</groupId> 
     <artifactId>random-beans</artifactId> 
     <version>${randomBeans.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.neo4j</groupId> 
     <artifactId>neo4j-ogm-test</artifactId> 
     <version>${neo4jOgmTest.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.hamcrest</groupId> 
     <artifactId>hamcrest-library</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

Et tout ce que je suis en train de faire est de sauver une autorité

Authority authAdmin = new Authority(); 
authAdmin.setName(AuthoritiesConstants.ADMIN); 
authAdmin = authorityRepository.save(authAdmin); 
+0

Je ne peux pas reproduire l'erreur (a dû ajouter un peu Kotlin deps pour le faire fonctionner) . Pouvez-vous essayer de mettre à jour à Spring boot 2.0.0 M5? Si l'erreur est toujours là, pouvez-vous essayer de reproduire avec l'un des modèles ici: https://github.com/neo4j-examples/neo4j-sdn-ogm-issue-report-template? – nmervaillie

+1

Avez-vous trouvé une solution? J'ai le même problème, avec Spring Boot 2.0.0 M6. – Geir

+0

Je me demande aussi si une solution a été trouvée pour cela. J'ai aussi le même problème sur Spring Boot 2.0.0 M7. Je ne sais pas si c'est un bug et si nous devons attendre celui-ci. –

Répondre

1

J'ai eu le même problème sur Spring Boot 2.0.0 M6. Je l'ai eu à travailler en revenant à 2.0.0 M5.

Prenez garde que M4 a une autre question, mais M3 fonctionne aussi (bien que je ne vois aucune raison de revenir plus loin que M5)

+0

Même cela n'a pas fonctionné pour moi. A dû migrer vers Spring Boot 1.5.x – Maksim