我用
spring创建了项目.
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;
}
}
当我导航到localhost:8080 / api / cities时,我看不到实际数据表单数据库:
{
"_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"
}
}
},
...
只有当我向实体添加getter时才会看到数据,但是从lombok文档中@Data注释必须为所有实体属性生成getter和setter.
最佳答案 将City.groovy重命名为City.java,现在它正常工作.感谢@highstakes