如果在使用MyBatis存取資料庫時,出現下面錯誤時
JsonMappingException: Could not write JSON: (was java.lang.NullPointerException)
解決方式如下。
此錯誤發生原因為POJO類中存在某個getter方法(JavaBeans的慣例為get或is開頭,例如getUserName()
或isVip()
),當MyBatis讀取資料表後,使用Jackson將資料表欄位的值轉成POJO的屬性時,會經由反射機制來呼叫POJO類的getter方法,但getter呼叫後因某種原因拋出NullPointerException
,則會引發此錯誤。
如果不希望此getter方法在MyBatis存取資料庫時被自動呼叫,可以使用以下方法。
- 在getter方法上加註
@JsonIgnore
- 重新命名該getter方法,不要以get或is開頭,例如
getUserName()
改為fetchUserName()
參考:
沒有留言:
張貼留言