我正在使用 Spring 框架、Hibernate ORM 和 Jackson 扩展用 Java 编写的 REST API,用于 JSON(反)序列化。
在一些 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 保留类型的原始值而不是修改它?