我正在 play 框架 2.2.1 下工作,我需要在数据模型中快速保存 blob 实体(需要为客户端保存的快速用户设置文档)。我已经做过很多次了,但这次我希望 Ebean 帮我处理繁重的工作。
我想让 Ebean 将 Jackson 的 JsonNode
和 ObjectNode
识别为列类型。这是我的类(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
andMap<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/