Spring数据休息@ManyToOne字段不会进入json

时间:2014-09-09 05:53:19

标签: json spring-boot spring-data-jpa spring-data-rest

我正在使用Spring Boot,Spring Data JPA和Spring Data Rest技术开发一个Web项目。我能够成功设置所有内容并能够获得简单POJO的JSON。我已经定制了两个类来实现OneToMany和ManyToOne这样的关系: -

@Entity
@Table(name="t_profile")
public class Profile {
@Id
@column(name="profile_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String name;
@JoinColumn(name = "cat_id", referencedColumnName = "category_id")
@ManyToOne(optional=false)
private Category category;

// getters and setters
}

@Entity
@Table(name="t_category")
public class Category {
 @Id
 @column(name="category_id")
 @GeneratedValue(strategy = GenerationType.AUTO)
 private long id;
 private String name;
 @OneToMany(mappedBy="category")
 private List<Profile> profile; 
 // getters and setters 
}
http://localhost:8080/project/profiles

当我使用rest客户端访问配置文件时;我能够获得带有id,name字段的json格式,但是ManyToOne字段不是来自json,在控制器中调试,配置文件列表具有类别的值。但它并没有进入json。

有什么想法?

2 个答案:

答案 0 :(得分:0)

ManyToOne字段将作为链接出现。这是访问类别,配置文件字段将列在JSON正文中的“_links”下,如下所示:

"_links" : {
    "profile" : {
        "href" : "http://<host>/<baseUrl>/category/<categoryId>/profile"
}

进一步获取api以下给定类别电话的个人资料详情:

http://<host>/<baseUrl>/category/<categoryId>/profile

答案 1 :(得分:0)

您可以在@RestResource(exported = false)字段中使用ManyToOne