2017-10-09 4 views
2

Ich verwende Spring Data 5 über Spring Boot 2.0.0.M4.Spring Data Neo4j 5's EntityScan enthält Companion Objects bei Verwendung von Kotlin

Ich habe festgestellt, dass bei der Verwendung von @EntityScan und Bereitstellung eines Pakets umfasst das Scannen von "inneren" Klassen, die von Kotlin erzeugt werden. In meinem Beispiel unten habe ich nur eine Eigenschaft, aber ich habe auch versucht companion object { <property here> } und es immer noch Fehler aus.

Gibt es trotzdem eine Filterung dieser internen Klassen, die Kotlin erzeugt? Hier

ist die Ausnahme erhalte ich:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'neo4jMappingContext': Invocation of init method failed; nested exception is java.lang.UnsupportedOperationException: This class is an internal synthetic class generated by the Kotlin compiler, such as an anonymous class for a lambda, a SAM wrapper, a callable reference, etc. It's not a Kotlin class or interface, so the reflection library has no idea what declarations does it have. Please use Java reflection to inspect this class: class com.mybusinessincorp.mbitest.model.Store$properties$3

Vollstacktrace:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'storeController' defined in file [C:\Users\jimpo\IdeaProjects\myboothinventory\mbi-test\target\classes\com\mybusinessincorp\mbitest\web\StoreController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'storeRepository': Cannot resolve reference to bean 'neo4jMappingContext' while setting bean property 'mappingContext'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'neo4jMappingContext': Invocation of init method failed; nested exception is java.lang.UnsupportedOperationException: This class is an internal synthetic class generated by the Kotlin compiler, such as an anonymous class for a lambda, a SAM wrapper, a callable reference, etc. It's not a Kotlin class or interface, so the reflection library has no idea what declarations does it have. Please use Java reflection to inspect this class: class com.mybusinessincorp.mbitest.model.Store$properties$3 
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:745) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:214) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1269) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1126) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:756) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868) ~[spring-context-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) ~[spring-context-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:122) ~[spring-boot-2.0.0.M4.jar:2.0.0.M4] 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) [spring-boot-2.0.0.M4.jar:2.0.0.M4] 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) [spring-boot-2.0.0.M4.jar:2.0.0.M4] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) [spring-boot-2.0.0.M4.jar:2.0.0.M4] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1245) [spring-boot-2.0.0.M4.jar:2.0.0.M4] 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1233) [spring-boot-2.0.0.M4.jar:2.0.0.M4] 
    at com.mybusinessincorp.mbitest.MbiTestApplicationKt.main(MbiTestApplication.kt:12) [classes/:na] 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'storeRepository': Cannot resolve reference to bean 'neo4jMappingContext' while setting bean property 'mappingContext'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'neo4jMappingContext': Invocation of init method failed; nested exception is java.lang.UnsupportedOperationException: This class is an internal synthetic class generated by the Kotlin compiler, such as an anonymous class for a lambda, a SAM wrapper, a callable reference, etc. It's not a Kotlin class or interface, so the reflection library has no idea what declarations does it have. Please use Java reflection to inspect this class: class com.mybusinessincorp.mbitest.model.Store$properties$3 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:378) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1607) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1352) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:275) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1133) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1060) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:832) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:737) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    ... 19 common frames omitted 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'neo4jMappingContext': Invocation of init method failed; nested exception is java.lang.UnsupportedOperationException: This class is an internal synthetic class generated by the Kotlin compiler, such as an anonymous class for a lambda, a SAM wrapper, a callable reference, etc. It's not a Kotlin class or interface, so the reflection library has no idea what declarations does it have. Please use Java reflection to inspect this class: class com.mybusinessincorp.mbitest.model.Store$properties$3 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1702) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:583) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:367) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    ... 33 common frames omitted 
Caused by: java.lang.UnsupportedOperationException: This class is an internal synthetic class generated by the Kotlin compiler, such as an anonymous class for a lambda, a SAM wrapper, a callable reference, etc. It's not a Kotlin class or interface, so the reflection library has no idea what declarations does it have. Please use Java reflection to inspect this class: class com.mybusinessincorp.mbitest.model.Store$properties$3 
    at kotlin.reflect.jvm.internal.KClassImpl.reportUnresolvedClass(KClassImpl.kt:289) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.jvm.internal.KClassImpl.access$reportUnresolvedClass(KClassImpl.kt:42) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.jvm.internal.KClassImpl$Data$descriptor$2.invoke(KClassImpl.kt:52) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.jvm.internal.KClassImpl$Data$descriptor$2.invoke(KClassImpl.kt:43) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.jvm.internal.ReflectProperties$LazySoftVal.invoke(ReflectProperties.java:93) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.jvm.internal.ReflectProperties$Val.getValue(ReflectProperties.java:32) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.jvm.internal.KClassImpl$Data.getDescriptor(KClassImpl.kt) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.jvm.internal.KClassImpl.getDescriptor(KClassImpl.kt:172) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.jvm.internal.KClassImpl.getConstructorDescriptors(KClassImpl.kt:186) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.jvm.internal.KClassImpl$Data$constructors$2.invoke(KClassImpl.kt:90) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.jvm.internal.KClassImpl$Data$constructors$2.invoke(KClassImpl.kt:43) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.jvm.internal.ReflectProperties$LazySoftVal.invoke(ReflectProperties.java:93) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.jvm.internal.ReflectProperties$Val.getValue(ReflectProperties.java:32) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.jvm.internal.KClassImpl$Data.getConstructors(KClassImpl.kt) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.jvm.internal.KClassImpl.getConstructors(KClassImpl.kt:222) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at kotlin.reflect.full.KClasses.getPrimaryConstructor(KClasses.kt:40) ~[kotlin-reflect-1.1.51.jar:1.1.51] 
    at org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers$2.lambda$discover$2(PreferredConstructorDiscoverer.java:168) ~[spring-data-commons-2.0.0.RC3.jar:na] 
    at java.util.Optional.orElseGet(Optional.java:267) ~[na:1.8.0_112] 
    at org.springframework.data.mapping.model.PreferredConstructorDiscoverer$Discoverers$2.discover(PreferredConstructorDiscoverer.java:165) ~[spring-data-commons-2.0.0.RC3.jar:na] 
    at org.springframework.data.mapping.model.PreferredConstructorDiscoverer.discover(PreferredConstructorDiscoverer.java:77) ~[spring-data-commons-2.0.0.RC3.jar:na] 
    at org.springframework.data.mapping.model.BasicPersistentEntity.<init>(BasicPersistentEntity.java:93) ~[spring-data-commons-2.0.0.RC3.jar:na] 
    at org.springframework.data.mapping.model.BasicPersistentEntity.<init>(BasicPersistentEntity.java:74) ~[spring-data-commons-2.0.0.RC3.jar:na] 
    at org.springframework.data.neo4j.mapping.Neo4jPersistentEntity.<init>(Neo4jPersistentEntity.java:56) ~[spring-data-neo4j-5.0.0.RC3.jar:na] 
    at org.springframework.data.neo4j.mapping.Neo4jMappingContext.createPersistentEntity(Neo4jMappingContext.java:64) ~[spring-data-neo4j-5.0.0.RC3.jar:na] 
    at org.springframework.data.neo4j.mapping.Neo4jMappingContext.createPersistentEntity(Neo4jMappingContext.java:44) ~[spring-data-neo4j-5.0.0.RC3.jar:na] 
    at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:376) ~[spring-data-commons-2.0.0.RC3.jar:na] 
    at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:343) ~[spring-data-commons-2.0.0.RC3.jar:na] 
    at org.springframework.data.neo4j.mapping.Neo4jMappingContext.lambda$new$1(Neo4jMappingContext.java:57) ~[spring-data-neo4j-5.0.0.RC3.jar:na] 
    at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[na:1.8.0_112] 
    at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[na:1.8.0_112] 
    at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1620) ~[na:1.8.0_112] 
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[na:1.8.0_112] 
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_112] 
    at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[na:1.8.0_112] 
    at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[na:1.8.0_112] 
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_112] 
    at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[na:1.8.0_112] 
    at org.springframework.data.neo4j.mapping.Neo4jMappingContext.<init>(Neo4jMappingContext.java:57) ~[spring-data-neo4j-5.0.0.RC3.jar:na] 
    at org.springframework.data.neo4j.repository.config.Neo4jMappingContextFactoryBean.createInstance(Neo4jMappingContextFactoryBean.java:62) ~[spring-data-neo4j-5.0.0.RC3.jar:na] 
    at org.springframework.data.neo4j.repository.config.Neo4jMappingContextFactoryBean.createInstance(Neo4jMappingContextFactoryBean.java:31) ~[spring-data-neo4j-5.0.0.RC3.jar:na] 
    at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:141) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1761) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1698) ~[spring-beans-5.0.0.RC4.jar:5.0.0.RC4] 
    ... 40 common frames omitted 

ich ein Beispielprojekt unter erstellt haben, um zu helfen.

pom.xml

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

    <groupId>com.mybusinessincorp</groupId> 
    <artifactId>mbi-test</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>mbi-test</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>2.0.0.M4</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <kotlin.compiler.incremental>true</kotlin.compiler.incremental> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
     <kotlin.version>1.1.51</kotlin.version> 
    </properties> 

    <dependencies> 

     <!--<dependency>--> 
      <!--<groupId>au.com.console</groupId>--> 
      <!--<artifactId>kassava</artifactId>--> 
      <!--<version>1.0.0</version>--> 
      <!--<exclusions>--> 
       <!--<exclusion>--> 
        <!--<groupId>org.jetbrains.kotlin</groupId>--> 
        <!--<artifactId>kotlin-stdlib</artifactId>--> 
       <!--</exclusion>--> 
      <!--</exclusions>--> 
     <!--</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-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.jetbrains.kotlin</groupId> 
      <artifactId>kotlin-stdlib-jre8</artifactId> 
      <version>${kotlin.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jetbrains.kotlin</groupId> 
      <artifactId>kotlin-reflect</artifactId> 
      <version>${kotlin.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory> 
     <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
      <plugin> 
       <artifactId>kotlin-maven-plugin</artifactId> 
       <groupId>org.jetbrains.kotlin</groupId> 
       <version>${kotlin.version}</version> 
       <configuration> 
        <compilerPlugins> 
         <plugin>spring</plugin> 
        </compilerPlugins> 
        <jvmTarget>1.8</jvmTarget> 
       </configuration> 
       <executions> 
        <execution> 
         <id>compile</id> 
         <phase>compile</phase> 
         <goals> 
          <goal>compile</goal> 
         </goals> 
        </execution> 
        <execution> 
         <id>test-compile</id> 
         <phase>test-compile</phase> 
         <goals> 
          <goal>test-compile</goal> 
         </goals> 
        </execution> 
       </executions> 
       <dependencies> 
        <dependency> 
         <groupId>org.jetbrains.kotlin</groupId> 
         <artifactId>kotlin-maven-allopen</artifactId> 
         <version>${kotlin.version}</version> 
        </dependency> 
       </dependencies> 
      </plugin> 
     </plugins> 
    </build> 

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

    <pluginRepositories> 
     <pluginRepository> 
      <id>spring-snapshots</id> 
      <name>Spring Snapshots</name> 
      <url>https://repo.spring.io/snapshot</url> 
      <snapshots> 
       <enabled>true</enabled> 
      </snapshots> 
     </pluginRepository> 
     <pluginRepository> 
      <id>spring-milestones</id> 
      <name>Spring Milestones</name> 
      <url>https://repo.spring.io/milestone</url> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </pluginRepository> 
    </pluginRepositories> 


</project> 

MbiTestApplication.kt

package com.mybusinessincorp.mbitest 

import org.springframework.boot.SpringApplication 
import org.springframework.boot.autoconfigure.SpringBootApplication 
import org.springframework.boot.autoconfigure.domain.EntityScan 

@SpringBootApplication 
@EntityScan("com.mybusinessincorp.mbitest.model") 
class MbiTestApplication 

fun main(args: Array<String>) { 
    SpringApplication.run(MbiTestApplication::class.java, *args) 
} 

/model/Store.kt

package com.mybusinessincorp.mbitest.model 

import org.neo4j.ogm.annotation.Index 
import org.neo4j.ogm.annotation.NodeEntity 
import org.neo4j.ogm.annotation.Transient 

@NodeEntity 
data class Store(

    var id: Long? = null, 

    @Index(unique = true) 
    var storeId: Long? = null, 

    var name: String? = null 

) { 
    @Transient 
    private val properties = arrayOf(Store::id, Store::storeId, Store::name) 
} 

/domain/StoreRepository.kt

package com.mybusinessincorp.mbitest.domain 

import com.mybusinessincorp.mbitest.model.Store 
import org.springframework.data.neo4j.repository.Neo4jRepository 
import org.springframework.stereotype.Repository 
import org.springframework.transaction.annotation.Transactional 


/** 
* Repository for [Store]s 
* */ 
@Repository 
@Transactional 
interface StoreRepository : Neo4jRepository<Store, Long> 

/web/StoreController.kt

package com.mybusinessincorp.mbitest.web 

import com.mybusinessincorp.mbitest.domain.StoreRepository 
import com.mybusinessincorp.mbitest.model.Store 
import org.springframework.web.bind.annotation.GetMapping 
import org.springframework.web.bind.annotation.RequestMapping 
import org.springframework.web.bind.annotation.RestController 

@RestController 
@RequestMapping("stores") 
class StoreController 
constructor(private val storeRepository: StoreRepository) { 

    @GetMapping("/", "/allStores") 
    fun allStores(): Iterable<Store> = storeRepository.findAll(1) 
} 

application.yml

spring: 
    application: 
    name: myboothinventory-test 
    data: 
    neo4j: 
     uri: bolt://localhost:7687 
     username: neo4j 
     password: <password> 
security: 
    basic: 
     enabled: false 

Antwort

Verwandte Themen