2017-10-09 88 views
2

我試圖讓Neo4j工作,但最終得到這個錯誤時,要麼嘗試獲得一個實體,要麼堅持一個,並無法弄清楚。Neo4j無法設置java.lang.Long字段model.Authority.id到model.Authority

產生的原因:java.lang.IllegalArgumentException異常:不能sun.reflect java.lang.Long中的字段com.mycompany.mbi.dom.Authority.id設置爲com.mycompany.mbi.dom.Authority .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] at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:36)〜[na:1.8.0_131] at java.lang.reflect.Field .get(Field.java:393)〜[na:1.8.0_13 1] at org.neo4j.ogm.metadata.FieldInfo.read(FieldInfo.java:373)〜[neo4j-ogm-core-3.0.0-RC1.jar:na] at org.neo4j.ogm.metadata。 FieldInfo.readProperty(FieldInfo.java:432)〜[neo4j-ogm-core-3.0.0-RC1.jar:na] at org.neo4j.ogm.utils.EntityUtils.identity(EntityUtils.java:36)〜[ neo4j-ogm-core-3.0.0-RC1.jar:na] at org.neo4j.ogm.context.EntityGraphMapper.mapEntity(EntityGraphMapper.java:211)〜[neo4j-ogm-core-3.0.0-RC1。 jar:na] at org.neo4j.ogm.context.EntityGraphMapper.map(EntityGraphMapper.java:132)〜[neo4j-ogm-core-3.0.0-RC1.jar:na] at org.neo4j.ogm。 session.delegates.SaveDelegate.save(SaveDelegate.java:79)〜[neo4j-ogm-core-3.0.0-RC1.jar:na] at org.neo4j.ogm.session.delegates.SaveDelegate.save(SaveDelegate。 java:41)〜[neo4j-ogm-core-3.0.0-RC1.jar:na] at org.neo4j.ogm.session.Neo4jSession.save(Neo4jSession.java:451)〜[neo4j-ogm-core-3.0.0-RC1.jar:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method )〜[na:1.8.0_131] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[na:1.8.0_131] at 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] at org.springframework.data.neo4j.transaction.SharedSessionCreator $ SharedSessionInvocationHandler.invoke (SharedSessionCreator.java:131)〜[spring-data-neo4j-5.0.0.RC2.jar:na] at com.sun.proxy。$ Proxy95.save(Unknown Source)〜[na:na] at org .springframework.data.neo4j.repository.support.SimpleNeo4jRepository.s ave(SimpleNeo4jRepository.java:73)〜[spring-data-neo4j-5.0.0.RC2.jar:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)〜[na:1.8.0_131] at sun .reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[na:1.8.0_131] at 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] at org.springframework.data.repository.core.support.RepositoryComposition $ RepositoryFragments.invoke(RepositoryComposition.java:377)〜[spring -data-commons-2.0.0.RC2.jar:na] at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:200)〜[spring-data-commons-2.0.0 .RC2.jar:na] at org.springframewor k.data.repository.core.support.RepositoryFactorySupport $ ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:604)〜[spring-data-commons-2.0.0.RC2.jar:na] at org.springframework.aop.framework。 ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)〜[spring-aop-5.0.0.RC3.jar:5.0.0.RC3] at org.springframework.data.repository.core.support.RepositoryFactorySupport $ QueryExecutorMethodInterceptor.doInvoke( RepositoryFactorySupport.java:568)〜[spring-data-commons-2.0.0.RC2.jar:na] at org.springframework.data.repository.core.support。RepositoryFactorySupport $ QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:549)〜[spring-data-commons-2.0.0.RC2.jar:na] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) 〜[spring-aop-5.0.0.RC3.jar:5.0.0.RC3] at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:60)〜[spring-data-commons-2.0。 0.RC2.jar:na] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)〜[spring-aop-5.0.0.RC3.jar:5.0.0.RC3] at org.springframework.transaction.interceptor.TransactionInte org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)〜[spring-tx-5.0.0.RC3.jar:5.0.0.RC3] rorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)〜[spring-tx-5.0.0.RC3.jar:5.0.0.RC3] 〜[spring-aop-5.0.0.RC3.jar:5.0.0.RC3] at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)〜[spring-tx-5.0.0。 RC3.jar:5.0.0.RC3] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)〜[spring-aop-5.0.0.RC3.jar:5.0.0.RC3] at org.springframework.aop.framework。org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)〜[spring-aop-5.0.0.RC3.jar:5.0.0.RC3] 。 ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)〜[spring-aop-5.0.0.RC3.j ar:5.0.0.RC3] at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61)〜[spring-data-commons-2.0.0.RC2.jar:na] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)〜[spring-aop-5.0.0.RC3.jar:5.0.0.RC3] at org.springframework.aop.framework。 JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)〜[spring-aop-5.0.0.RC3.jar:5.0.0.RC3] at com.sun.proxy。$ Proxy101.save(Unknown Source)〜[na: na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)〜[na:1.8.0_131] at com.mycompany.mbi.security.InitSecurity.initApplication(InitSecurity.java:32)〜[classes /:na] at sun.reflect.NativeMethodAccessorImpl.invoke0 at sun.reflect.NativeMethodAccessorImpl.in voke(NativeMethodAccessorImpl.java:62)〜[na:1.8.0_131] at 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] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor $ LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:369)〜[spring-beans-5.0.0。 RC3.jar:5.0.0.RC3] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor $ LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:312)〜[spring-beans-5.0.0.RC3.jar:5.0。 0.RC3] at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:135)〜[spring-beans-5.0.0.RC3.ja r:5.0.0.RC3] ...23個共同框架省略

我的實體:

@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 + '\'' + 
     "}"; 
} 

}

我的相關POM文件:

<?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> 

和所有我想要做的是保存管理局

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

我無法重現錯誤(不得不增加一些科特林的DEP,使其工作) 。你可以嘗試更新到Spring引導2.0.0 M5?如果錯誤仍然存​​在,您可以嘗試使用其中一個模板進行重現:https://github.com/neo4j-examples/neo4j-sdn-ogm-issue-report-template? – nmervaillie

+1

您是否找到解決方案?我遇到了與Spring Boot 2.0.0 M6相同的問題。 – Geir

+0

我也想知道是否找到了解決方案。我在Spring Boot 2.0.0 M7上也遇到同樣的問題。不知道這是否是一個錯誤,我們是否必須等待這一個。 –

回答

1

我在Spring Boot 2.0.0 M6上遇到了同樣的問題。通過恢復到2.0.0 M5來實現它。

要注意的是M4都有不同的問題,但M3也工作(雖然我看不出有任何理由要回去比任何進一步的M5)

+0

即使這不適合我。必須遷移到Spring Boot 1.5.x – Maksim

相關問題