0
我正在使用Spring框架,Hibernate ORM和Jackson for JSON(de)序列化擴展用Java編寫的REST API。Hibernate延遲加載修改值
在一些API調用中,我需要根據提供的值(例如訂閱ID)返回用戶的帳戶。有不同類型的帳戶,因此包含一個類型值,客戶可以確定他們正在處理的帳戶類型。
在我的控制,我通過所提供的用戶ID到該服務調用,它會調用這個方法:
public Account getAccountBySubscriptionId(long subscriptionId) {
ServiceSubscription subscription = subscriptionDAO.load(subscriptionId);
if(subscription != null) {
return subscription.getAccount();
} else {
return null;
}
}
我希望它可以JSON相似回到這個:
{
"type":"account_type_goes_here",
"id":1,
"accountNumber":"100"
}
然而,看起來Hibernate的懶加載正在修改類型值,因此(注意UserAccount是對象的類):
{
"type":"UserAccount_$$_javassist_1",
"id":2,
"accountNumber":"37"
}
如何讓Hibernate保留類型的原始值而不是修改它?
我不這麼認爲 - 類似的代碼用於其他地方,如預期的那樣返回賬戶類型。不過我會仔細檢查一下。 –
你是對的 - 模型中有一些奇怪的邏輯造成這種情況。謝謝! –