从 Ebean 中用户定义的编号开始 ID 值,Play-framework 2.5.4 java
Start ID value from a user defined number in Ebean, Play-framework 2.5.4 java
我正在使用 Play-framework 2.5.4 (Java)。我正在使用 Ebean 作为 ORM。
这是我的模型 class :
@Entity
public class MyModel extends Model
{
@Id
@GeneratedValue()
public Long ID;
}
我想要实现的是,
- ID的值应该是8位数字
- 它应该独一无二
- 应该从10000000开始
- 即第一个 ID 应为 10000000,第二个 ID 应为 100000001,依此类推。
现在生成的ID默认值是1,2,3,4等等
我怎样才能做到这一点?
您可以实现自定义 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。
我正在使用 Play-framework 2.5.4 (Java)。我正在使用 Ebean 作为 ORM。
这是我的模型 class :
@Entity
public class MyModel extends Model
{
@Id
@GeneratedValue()
public Long ID;
}
我想要实现的是,
- ID的值应该是8位数字
- 它应该独一无二
- 应该从10000000开始
- 即第一个 ID 应为 10000000,第二个 ID 应为 100000001,依此类推。
现在生成的ID默认值是1,2,3,4等等
我怎样才能做到这一点?
您可以实现自定义 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。