我正在游戏框架2.2.1下工作,并且我的数据模型中需要一个快速的Blob保存实体(需要为客户端保存的快速用户设置文档)。我已经做了很多次,但是这次我希望Ebean为我完成繁重的工作。

我想让Ebean将jackson的JsonNodeObjectNode识别为列类型。这是我班的样子:

@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个不同的选项)。


  更新:从Ebean ORM版本4.6.3开始,现在内置了将JsonNodeMap<String,Object>都存储到其中的支持。
  各种数据库类型(Clob,Varchar,Blob以及Postgres JSON和JSONB
  数据类型)。
  
  参考:
  
  
  https://github.com/ebean-orm/avaje-ebeanorm/issues/297
  https://github.com/ebean-orm/avaje-ebeanorm/issues/299

09-17 04:18