【发布时间】:2017-10-18 04:52:49
【问题描述】:
我有一个实体
@Entity
@Table(name = "books")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
@Column(name = "id", unique = true, nullable = false)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name = "name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我是这样初始化的
@PostConstruct
public void init() {
List<String> newFiles = this.listFiles();
newFiles.forEach(filename -> {
Book book = new Book();
book.setName(filename);
dbRepository.save(book);
});
}
如果我将save 的结果设置为Book 的实例,我可以获得id,但它不是null——所以id 被创建得很好。
我定义了一个仓库
@RepositoryRestResource
public interface IBooksRepository extends CrudRepository<Book, Long> {
}
我想用它来获取数据并将其设置到数据库中的books 表中。
当我尝试使用curl localhost:8080/books 访问我的repository rest 时,我得到了这个响应
{
"_embedded":{
"books":[
{
"name":"simple-file.txt",
"_links":{
"self":{
"href":"http://localhost:8080/books/1"
},
"book":{
"href":"http://localhost:8080/books/1"
}
}
}
]
},
"_links":{
"self":{
"href":"http://localhost:8080/books"
},
"profile":{
"href":"http://localhost:8080/profile/books"
}
}
}
books 元素仅返回 name。我怎样才能让它也返回id,与name处于同一级别?
【问题讨论】:
标签: spring-boot spring-data-rest