Java 如何在我的Ebean实体中具有适当的JsonNode字段?

Java 如何在我的Ebean实体中具有适当的JsonNode字段?,java,json,playframework,jackson,ebean,Java,Json,Playframework,Jackson,Ebean,我在play framework 2.2.1下工作,我需要在我的数据模型中快速保存blob实体(需要为客户端保存的快速用户设置文档)。我已经做了很多次了,但这次我希望埃宾能帮我完成繁重的工作 我想让Ebean将jackson的JsonNode和ObjectNode识别为列类型。下面是我的班级的样子: @Entity public class UserSettings extends Model { @Id @GeneratedValue private Long id;

我在play framework 2.2.1下工作,我需要在我的数据模型中快速保存blob实体(需要为客户端保存的快速用户设置文档)。我已经做了很多次了,但这次我希望埃宾能帮我完成繁重的工作

我想让Ebean将jackson的
JsonNode
ObjectNode
识别为列类型。下面是我的班级的样子:

@Entity
public class UserSettings extends Model {

    @Id
    @GeneratedValue
    private Long id;

    private JsonNode blob;

    // [... getters setters and whatnot ...]
}
我希望Ebean在我的表中直接创建一个文本列(使用PostgreSQL),并在需要时自动解析和字符串化该列。我没有找到与这种特性相关的代码示例或文档。这看起来很基本,应该是可能的。还是我真的错了? Ebean已经支持joda time,这看起来很奇怪,因为它不支持添加自定义对象类型或json blob,对吗?

您可以看看: com.avaje.ebean.config.ScalarTypeConverter

或者 com.avaje.ebeaninternal.server.type.ScalarTypeBaseVarchar

也许作为一些例子来解决

com.avaje.ebeaninternal.server.type.ScalarTypeUUID com.avaje.ebeaninternal.server.type.ScalarTypeClob

第一个问题是您是否将JSON存储为Clob或Varchar(或者您可能需要两个不同的选项)

更新:从Ebean ORM版本4.6.3开始,现在内置了对将
JsonNode
Map
存储到 各种数据库类型(Clob、Varchar、Blob加Postgres JSON和JSONB 数据类型)

参考:


幸运的是,使用Ebean ORM处理JSON有了很大的改进,这要归功于@Rob:/还请注意,有一个增强请求通过ObjectMapper支持Jackson bean(除了JsonNode和Map类型)。这被记录为