实体获取者需要以" s"包含在JSON中

时间:2017-07-12 05:12:10

标签: java json spring spring-data-rest

我使用Spring-data-rest创建RESTful API。我有一个实体;

@Entity
@Table(name = "pricingoptionsets") 
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@pricingOptionSetId") //To prevent fetch loops
public class PricingOptionSet {

//Region Properties
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="PricingOptionSetId", nullable=false, unique=true)
private Long pricingOptionSetId;

@ManyToOne
@JoinColumn(name = "ProductId")
private Product product;

现在在Getters&塞特斯,如果我有以下内容:

public Product getProducts() {
        return product;
    }

我在响应的JSON中收到产品信息。但如果吸气剂是:

public Product getProduct() {
        return product;
    }

然后不再包括产品信息:S

任何想法如何解决?顺便说一句,我正在使用扩展CRUDRepository的简单存储库

2 个答案:

答案 0 :(得分:0)

这里的getProducts()是一种方法,所以你把它定义为getProducts()或getProduct()并不重要。

此处唯一可能发生的问题是,您使用此方法的实现也应根据方法名称进行更改。

试试这个,或者只是发布你的json响应,这样我们就可以弄清楚问题是什么,但这确定方法名称与响应变化没有任何关系。

答案 1 :(得分:0)

从你的json可以看出

{ "_embedded" : { "pricingOptionSets" : [ { "@pricingOptionSetId" : 1, "name"
 : "AgentRate30", "products" : { "@productId" : 4, "productId" : 1, }

该属性应为products,因此您需要将setter和getter设为getProducts setProducts` - 当然,该字段也应该匹配

根据此回复https://stackoverflow.com/a/12583772/2310289

,您还可以考虑使用@jsonProperty

在你的情况下,它将是

@JsonProperty(value="products")
private Product product;
相关问题