0

我正在使用 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 保留类型的原始值而不是修改它?

4

1 回答 1

2

您确定返回对象类型而不是帐户类型的字符串值的逻辑中没有错误吗?

于 2013-05-22T13:45:13.810 回答