【问题标题】: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。

    【讨论】:

    • 感谢您的回答。我会试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多