Lombok用法 - 它不在单元测试中提供其功能

时间:2017-01-19 19:24:24

标签: spring-data lombok

域对象设置如下:

@Data
@NoArgsConstructor
@Entity
public class Foo {
  ...

  public Foo(...){
    ...
  }
  ...
}

当我使用一组测试运行构建时,这很好。但是,当我只运行测试类时,我收到以下错误:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.orm.jpa.JpaSystemException: No default constructor for entity:  : com.abc.myapp.Foo; nested exception is org.hibernate.InstantiationException: No default constructor for entity:  : com.abc.myapp.Foo

项目设置是由spring.io上的项目生成器生成的Spring Boot。以下是Gradle构建文件:

buildscript {
ext {
    springBootVersion = '1.5.0.RC1'
}
repositories {
    mavenCentral()
    maven { url "https://repo.spring.io/snapshot" }
    maven { url "https://repo.spring.io/milestone" }
}
  dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-    plugin:${springBootVersion}")
  }
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'

jar {
  baseName = 'spring-data-samples'
  version = '0.0.1-SNAPSHOT'
}

sourceCompatibility = 1.8

repositories {
  mavenCentral()
  maven { url "https://repo.spring.io/snapshot" }
  maven { url "https://repo.spring.io/milestone" }
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-actuator')
    compile('org.springframework.boot:spring-boot-actuator-docs')
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.springframework.boot:spring-boot-starter-data-rest')
    runtime('org.springframework.boot:spring-boot-devtools')
    runtime('com.h2database:h2')
    compileOnly('org.projectlombok:lombok')
   testCompile('org.springframework.boot:spring-boot-starter-test')
   testCompile('org.springframework.restdocs:spring-restdocs-mockmvc')

}

IDE是Intellij Idea。

缺少什么?

1 个答案:

答案 0 :(得分:0)

使用Lombok插件并启用注释处理器已解决此问题。