我们有很多具有嵌套关系的休眠实体类。我试图找到将给定实体转换为等效json格式的最佳方法。
我知道JsonIgnore,Jackson mixins和JsonFilters,并且一直在尝试这些。
我们面临的挑战如下
使用 OneToMany/JoinColumn 或类似注释相互关联的对象 - 创建无限递归。
实用工具或元方法。杰克逊似乎在通过获取方法而不是通过字段。某些方法是不与任何列关联的“meta”方法。示例 getTotal 方法可以对几个实际字段的值求和,而没有实际的总计字段。其他情况类似,例如getIncomeAccounts,它根据某些标准过滤帐户。
我写的 Jackson Filter 有点帮助 - 它根据 Jackson 属性名称检查类字段是否存在。它还会检查是否存在诸如 JoinColumn 批注之类的批注,以避免在字段存在时递归。
有没有办法从休眠中获取元数据并在我的过滤器中使用它?基本上,对于给定的实体对象,我有兴趣知道Jackson想要序列化的属性是否会映射到列,并且只有在存在与其关联的列值时才进行序列化。Hibernate 当然知道属性和列映射。
Mixins和jsonignore选项是可行的,但是我们依赖于个人开发人员记住将注释放在适当的位置。通常,当我们真的想要获取导出的数据来分析一些问题并在本地创建测试用例时,忘记的注释被发现得太晚了。
红颜莎娜
繁星点点滴滴
相关分类