GAE 1.8 にアップグレードしてから、Objectify で @Id でアノテーションを付けると、散らばった ID が表示されます。
@Id
private Long id;
クラウド プラットフォームでホットスポットを回避するために ID を分散させる必要があることは理解していますが、Objectify で古い増分 ID を取り戻す方法はありますか? UI に 16 進数の値 (1DZENH6BSOW など) を表示して、生成された大量の 64 ビット ID を回避する必要があります。
二次注釈 @IdLegacy が @Id と連携して機能することをうれしく思います。その後、@Id は引き続き長い ID を生成し、表示目的でレガシー ID を使用できます。
解決:
コンストラクター内に、ID が存在しない場合に ID を割り当てる単純なコードがあります。
if (getId() == null){
ObjectifyFactory f = new ObjectifyFactory();
Key<MyEntity> key = f.allocateId(MyEntity.class);
setId(key.getId());
}