java - 如何在我的 Ebean 实体中拥有正确的 JsonNode 字段?

标签 java json playframework jackson ebean

我正在 play 框架 2.2.1 下工作,我需要在数据模型中快速保存 blob 实体(需要为客户端保存的快速用户设置文档)。我已经做过很多次了,但这次我希望 Ebean 帮我处理繁重的工作。

我想让 Ebean 将 Jackson 的 JsonNodeObjectNode 识别为列类型。这是我的类(class)的样子:

@Entity
public class UserSettings extends Model {

    @Id
    @GeneratedValue
    private Long id;

    private JsonNode blob;

    // [... getters setters and whatnot ...]
}

我希望 Ebean 直接在我的表中创建一个 TEXT 列(使用 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(或者您可能需要 2 个不同的选项)。

Update: As of Ebean ORM version 4.6.3 there is now built in support for storing both JsonNode and Map<String,Object> into various database types (Clob,Varchar,Blob plus Postgres JSON and JSONB data types).

Refer to:

关于java - 如何在我的 Ebean 实体中拥有正确的 JsonNode 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21373467/

相关文章:

java - 捕获登录用户页面访问/点击图像/超链接/按钮 - 用户 Activity 审核跟踪

java - MAVEN:如何传递 -D 系统变量进行测试

java - 放心 : How to make the POST rest assure call abstract for different type of Request objects

scala - 拥有包含 10K 记录的用户静态列表/序列,这是线程安全的吗?

scala - 在play scala中传递请求参数

java - 如何使用 Java 将 BigQuery 读取到 Apache Spark

android - 对象中的Json解析对象获取错误

javascript - 将硬编码的 json 替换为 http get

ios - AFNetworking:getPath:参数方法导致问题

scala - 迁移来玩! 2.5导致此错误: NoSuchMethodError: akka. actor.LocalActorRefProvider.log()Lakka/event/LoggingAdapter