在Ebean @Entity上生成UUID

时间:2014-09-16 22:55:12

标签: playframework-2.0 ebean

我的User类中有两个字段

@Id
@Column(name="revisionId", length=36, updatable=false)
private UUID revisionId;

@Column(name="userId",length=36, updatable=false)
private UUID userId;

在插入时,我希望使用注释将userId(不是表的主键)生成为UUID。

我上下游戏框架/ ebean文档并且找不到用注释做到这一点的方法,但我觉得它应该是非常基本的。

1 个答案:

答案 0 :(得分:4)

Ebean不支持多个自动生成的字段。原因是关系模型和对象模型都不允许您拥有多个自动生成的密钥。例如,尝试在表中使用多个自动增量或多个时间戳。

为了完成您要做的事情,您必须创建自己的注释或注释您的实体以在PrePersist上生成UUID。

请注意,在游戏中你必须首先指定一个监听器类来处理application.conf中的那些注释。

ebean.default="models.*, models.sgcore.SGBeanPersistController"

请查看以下要点作为监听器的示例。 https://gist.github.com/domdorn/1547244