我在Play框架2.2.1下工作,我需要在我的数据模型中快速保存blob实体(需要为客户端保存的快速用户设置文档)。我已经做了很多次,但这次我希望Ebean为我照顾笨拙的工作。
我想让Ebean识别杰克逊的JsonNode
和ObjectNode
作为列类型。这是我班级的样子:
@Entity
public class UserSettings extends Model {
@Id
@GeneratedValue
private Long id;
private JsonNode blob;
// [... getters setters and whatnot ...]
}
我希望Ebean直接在我的表中创建一个TEXT列(使用PostgreSQL),并在需要时自动解析并字符串化。我还没有找到与此类功能相关的代码示例或文档。这看起来很基本,应该是可能的。还是我真的错了? Ebean已经支持了joda时间,看起来很奇怪它不能支持添加自定义对象类型或者json blob,对吗?
答案 0 :(得分:2)
你可以看看: 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开始,现在内置支持将
JsonNode
和Map<String,Object>
存储到 各种数据库类型(Clob,Varchar,Blob加Postgres JSON和JSONB 数据类型)。参考: