【问题标题】:Start ID value from a user defined number in Ebean, Play-framework 2.5.4 java从 Ebean 中用户定义的数字开始 ID 值,Play-framework 2.5.4 java
【发布时间】:2016-07-14 22:09:12
【问题描述】:
我正在使用 Play-framework 2.5.4 (Java)。我使用 Ebean 作为 ORM。
这是我的模型类:
@Entity
public class MyModel extends Model
{
@Id
@GeneratedValue()
public Long ID;
}
我想要实现的是,
- ID的值应该是8位数字
- 它应该独特
- 应该从10000000开始
- 即第一个 ID 应该是 10000000,第二个应该是 100000001,依此类推。
现在生成ID的默认值是1,2,3,4等等。
我怎样才能做到这一点?
【问题讨论】:
标签:
java
mysql
database
playframework
ebean
【解决方案1】:
您可以实现自定义 UID 生成器,例如 http://ebean-orm.github.io/docs/mapping/jpa/id。
public class ModUuidGenerator implements IdGenerator {
@Override
public Object nextValue() {
return 9999999l + ModUUID.newShortId();
}
@Override
public String getName() {
return "shortUid";
}
}
始终递增 1 可能会导致并发问题,但这确实会强制每个 id > 9999999l。