【发布时间】:2017-12-14 17:30:47
【问题描述】:
我正在使用 Spring 控制器通过 @RequestBody 注释将 JSON 转换为 Java。我正在调试这个,但是,正如我之前经历过的那样,我知道 JSON 没有被映射到我的实体,但我很好奇从 Java 的角度来看,非映射的 JSON 是什么。有没有办法让它在我的控制器中可见?这是我的控制器方法:
@PostMapping(path="/Add") // Map ONLY GET Requests
public @ResponseBody PurchaseRequestLineItem addNewPurchaseRequestLineItem (@RequestBody PurchaseRequestLineItem purchaseRequestLineItem) {
purchaseRequestLineItemRepository.save(purchaseRequestLineItem);
System.out.println("PurchaseRequestLineItem saved: "+purchaseRequestLineItem);
return purchaseRequestLineItem;
}
这是我的实体:
package com.prs.business.purchaserequest;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonIgnore;
@Entity
@Table(name="purchaserequestlineitem")
public class PurchaseRequestLineItem {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
// @Column(name="purchaserequestid")
// private int purchaseRequestID;
@ManyToOne
@JoinColumn(name="PurchaseRequestID")
@JsonIgnore
private PurchaseRequest purchaseRequest;
private int productID;
private int quantity;
public PurchaseRequestLineItem() {
id = 0;
//purchaseRequestID = 0;
purchaseRequest = null;
productID = 0;
quantity = 0;
}
public PurchaseRequestLineItem(PurchaseRequest inPR, int inPdtID, int inQty) {
purchaseRequest = inPR;
productID = inPdtID;
quantity = inQty;
}
// public PurchaseRequestLineItem(int inPRID, int inPdtID, int inQty) {
// purchaseRequestID = inPRID;
// productID = inPdtID;
// quantity = inQty;
// }
//
public PurchaseRequestLineItem(int inID, PurchaseRequest inPR, int inPdtID, int inQty) {
id = inID;
purchaseRequest = inPR;
productID = inPdtID;
quantity = inQty;
}
// public PurchaseRequestLineItem(int inID, int inPRID, int inPdtID, int inQty) {
// id = inID;
// purchaseRequestID = inPRID;
// productID = inPdtID;
// quantity = inQty;
// }
//
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
// public int getPurchaseRequestID() {
// return purchaseRequestID;
// }
//
// public void setPurchaseRequestID(int purchaseRequestID) {
// this.purchaseRequestID = purchaseRequestID;
// }
//
public PurchaseRequest getPurchaseRequest() {
return purchaseRequest;
}
public void setPurchaseRequest(PurchaseRequest purchaseRequest) {
this.purchaseRequest = purchaseRequest;
}
public int getProductID() {
return productID;
}
public void setProductID(int productID) {
this.productID = productID;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
@Override
public String toString() {
return "\npurchaseRequestLineItem [id=" + id + ", purchaseRequest=" + purchaseRequest + ", productID="
+ productID + ", quantity=" + quantity + "]";
}
}
我的属性文件中的行: spring.jackson.property-naming-strategy=UPPER_CAMEL_CASE
【问题讨论】:
-
分享
PurchaseRequestLineItem代码。对“杰克逊”转换器基础结构配置代码的相同请求。 -
刚刚添加了 PRLI 实体,但不确定您所说的“杰克逊”转换器 inf 是什么意思。配置代码。我认为这可能是命名策略属性。包括那个。
-
@PostMapping(path="/Add") // Map ONLY GET Requests... 与问题无关,但注意到这里有问题吗?