【发布时间】:2015-12-21 12:06:27
【问题描述】:
我有包装 JPA 实体的 UI 对象,并且在该 UI 对象的构造函数中,我会延迟加载一些属性。在同一个构造函数中,我需要知道 JsonView 当前处于活动状态,所以我不会延迟加载一些不需要的字段,如果说它是 List 视图。 有没有办法从构造函数中找出运行时当前活动的 JsonView 是什么。或者有没有其他方法可以实现我上面描述的。
我目前的计划 创建自定义序列化程序,在序列化期间将调用它序列化的对象的 setJsonView(Class jsonView)。我所有的序列化对象都必须支持该方法。在那个metid里面,我可以基于现在已知的json视图进行延迟加载。像这样的:
public class JsonViewSerializer extends JsonSerializer<BaseSerializableEntity> {
@Override
public void serialize(BaseSerializableEntity value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
value.setJsonView(provider.getSerializationView());
// need to pass serialization to base class...
}
}
【问题讨论】: