【问题标题】:Deserialize hibernate json column based on a column value根据列值反序列化hibernate json列
【发布时间】:2020-11-27 05:53:06
【问题描述】:

我有一个如下所示的 MySQL 表

 -------------------------------------------------------------------------
| id  | name    | type  | properties                                            |
| 1   | nameA   | A     | {"prop_a1" : "value_1", "prop_a2": "value_2"}   |
| 2   | nameB1  | B     | {"prop_b1" : "value_3"}                         |
| 3   | nameB2  | B     | {"prop_b1" : "value_4"}.                        |
 -------------------------------------------------------------------------

Class BaseEntity implements Serializable {
}

Class EntityA exends BaseEntity {
 String prop_a1;
 String prop_a2;
}

class EntityB extends BaseEntity {
 String prop_b1;
}

class ParentEntity<T extends BaseEntity> {
 Integer id;
 String name;
 Enum type;
 T properties;
}

我试图根据类型列将多态对象保留在属性列中。 尝试使用JsonTypeInfo,虽然它能够写入 MySQL 表但在读取时失败并出现错误:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field

以前有人处理过这个用例吗?

【问题讨论】:

    标签: mysql hibernate jackson


    【解决方案1】:

    您可以在 ParentEntity 上声明抽象 getter 和 setter 方法,并在子类中声明持久属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      • 2020-10-23
      • 1970-01-01
      相关资源
      最近更新 更多