將JPA實體轉換爲不包含相關對象但數據庫列的JSON的最佳方式是什麼?如何將JPA實體格式化爲JSON和數據庫列?
考慮:
public class Question implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
private Integer id;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 255)
@Column(name = "question_title")
private String questionTitle;
@Size(max = 500)
@Column(name = "question_desc")
private String questionDesc;
@JoinColumn(name = "requires_question_id", referencedColumnName = "id")
@ManyToOne
private Question requiredQuestion;
...
}
直接轉換問題以JSON可能是這樣的:
{
"id": 1,
"questionTitle": "Q1",
"questionDesc": "A Question 123"
"requiredQuestion": {
"id": 2,
"questionTitle": "Q2",
"questionDesc": "A Question 456"
}
}
但是更理想的結果可能是這樣的:
{
"id": 1,
"question_title": "Q1",
"question_desc": "A Question 123"
"required_question_id": 2
}
是什麼獲得理想結果的最佳方式是什麼?
創建一個像「question_title」等字符串鍵的hashmap並手動分配對象屬性,然後將地圖轉換爲json?
何時需要任何建議問題爲空?編寫字符串字段時不能調用getId。簡單地說,if(value.getRequiredQuestion()!= null)在它之前? – javajaba 2014-11-09 21:00:15
是的,你必須檢查null requiredQuestion,但是根據你想要輸出的情況(根本不需要'required_question_id'字段,或者null作爲值),你可以使用'jgen.writeNullField(「required_question_id」) '在'else'分支中。 – 2014-11-09 22:45:46