2016-03-14 3 views
1

Я создал проект с весной.Spring jpa entity и Lombok

dependencies { 
    compile('org.springframework.boot:spring-boot-starter-cache') 
    compile('org.springframework.boot:spring-boot-starter-data-jpa') 
    compile('org.springframework.boot:spring-boot-starter-data-rest') 
    compile('org.springframework.boot:spring-boot-devtools') 
    compile('org.projectlombok:lombok') 
    compile('org.springframework.boot:spring-boot-starter-thymeleaf') 
    compile('org.springframework.boot:spring-boot-starter-web') 
    compile('org.codehaus.groovy:groovy') 
    runtime('com.h2database:h2') 
    runtime('mysql:mysql-connector-java') 
    testCompile('org.springframework.boot:spring-boot-starter-test') 
    testCompile('org.springframework.restdocs:spring-restdocs-mockmvc') 
} 

application.properties:

spring.data.rest.base-path=/api 

spring.datasource.url=jdbc:mysql://localhost/secret_backend 
spring.datasource.username=root 
spring.datasource.driver-class-name=com.mysql.jdbc.Driver 

spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect 
spring.jpa.show-sql=true 
spring.jpa.hibernate.ddl-auto=update 

А класс объектов:

package com.app.Entity 

import lombok.Data 

import javax.persistence.Entity 
import javax.persistence.GeneratedValue 
import javax.persistence.Id 
import javax.persistence.Table 

@Data 
@Entity 
@Table(name = "cities") 
public class City { 

    private @Id @GeneratedValue Long id; 
    private String slug; 
    private String title; 
    private String titleShort; 

    private City() {} 

    /*public String getSlug(){ 
     return slug; 
    }*/ 

    public City(String slug) { 
     this.slug = slug; 
    } 
} 

Когда я навигация на локальный хост: 8080/API/города, я не вижу фактическим база данных данных:

{ 
    "_embedded": { 
    "cities": [ 
     { 
     "_links": { 
      "self": { 
      "href": "http://localhost:8080/api/cities/7" 
      }, 
      "city": { 
      "href": "http://localhost:8080/api/cities/7" 
      } 
     } 
     }, 
     { 
     "_links": { 
      "self": { 
      "href": "http://localhost:8080/api/cities/8" 
      }, 
      "city": { 
      "href": "http://localhost:8080/api/cities/8" 
      } 
     } 
     }, 
... 

O если я добавляю getters к сущности, я вижу данные, но из документации lombok. @Data аннотация должна генерировать геттеры и сеттеры для всех свойств сущности.

+0

Вы проверили фактический результат? Является ли ломбок инструментом классов? Кроме того, ломбок нужен только для времени компиляции, а не для времени выполнения. – highstakes

+0

Фактический выход? Может быть, какая-то информация о манекене java (spring)? И lombok находится в компиляции ('org.projectlombok: lombok') – Cawa

+0

Я имею в виду, проверить скомпилированные файлы .class и посмотреть, были ли эти методы добавлены в них (используйте на нем jcom-декомпилятор или команду javap). Зависимость от компиляции означает, что она будет включена в произведенный артефакт, это будет предоставленная область (для которой вам нужен плагин для градиента), хотя это неважно. – highstakes

ответ

1

Переименован в City.groovy в City.java, и теперь он отлично работает. Благодаря @highstakes