我正在使用Java 8下在Tomcat 8上运行的JPA(EclipseLink 2.5.2)和Jersey 2.27进行项目开发。目前,我使用映射的实体以及一些简单的列表(不同的值,键值对)检索结果。我已经实现了服务器端的分页,过滤和排序。现在,我正在尝试添加动态聚合数据集的功能。
我已经在SO和其他站点上搜索了序列化从我的条件构建器查询返回的元组列表的最佳方法。到目前为止,我还没有发现任何可以回答我问题的东西。我可以想到三种方法来完成此操作,除非从此处获得一些良好的指导:
ArrayList<HashMap<String, Object>>
,其中使用别名和匹配结果构建HashMap,然后将其添加到列表中,列表按常规方式序列化因此,如果没有“简单”的方法来序列化元组列表,那么上面哪种方法最有意义?选项3绝对有效,但对我来说就像个麻烦。
答案 0 :(得分:1)
通常在业务逻辑中使用Reflection
听起来不太好,因此您应该取消首选(1.
)。 (2.
)-当您想使用流object
时,逐个序列API
听起来不错,在这种情况下,则不行。第三个(3.
)看起来很正常,这是一个很好的解决方案,因为它是通用的,并且List<Map<String, Object>>
非常适合JSON
规范:
JSON array
-List
JSON object
-Map
property
-String
any JSON object
-Object
您应该尝试在EclipseLink
级转换查询结果。请参阅JPA 2.0 native query results as map问题,建议将查询结果转换为ResultType.Map
的问题。