AdSense

網頁

2017/11/29

MyBatis JsonMappingException: Could not write JSON: (was java.lang.NullPointerException)

如果在使用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()


參考:

沒有留言:

AdSense