当我天真地使用Jackson转换为JSON时,我收到此异常:
原因:com.fasterxml.jackson.databind.exc.InvalidDefinitionException:未找到类org.apache.cayenne.access.DefaultDataRowStoreFactory的序列化程序,也未找到创建BeanSerializer的属性
编辑:我想做这样的事情:
ObjectContext context = cayenneRuntime.newContext();
List<User> users = ObjectSelect.query(User.class).select(context);
JsonObject json = Json.mapper.convertValue(obj, Map.class)
是否存在任何现有解决方案?谢谢
答案 0 :(得分:0)
考虑到一般情况下,Cayenne不仅为您提供对象,而且还为对象提供虚拟的图,因此序列化为JSON变得比最初看起来更加古怪。
简短的答案:您将为对象图的任何子图手动构建JSON。
虽然不是直接的答案,但值得一提的是Agrest framework(例如LinkRest)支持将Cayenne对象图基于规则的序列化为JSON。但这不是一个独立的组件。即只有将其用于REST服务时,它才有效。