0

このように定義されたエンティティが App Engine の Big Table に格納されている場合:

@Entity
@Table(name = "users")
public class User implements Serializable{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", nullable = false)
    private Long id; 
    private String username; 
    private String password;
    private String encryptedPassword;
    private String creationDate;
    private String modificationDate;
    private Boolean validated;

        // Code omitted
}

また、別のテーブル注釈を持つ別のエンティティがある場合、@Table(name = "profile")各エンティティ ID は互いに独立しています。たとえば、ID が 0 の User エンティティと、ID が 0 の Profile エンティティがあります。

つまり、エンティティは「大きなテーブル」に格納されているため、格納されているすべてのエンティティに連続した ID が割り当てられます。このような注釈を追加すると、エンティティが独立した一連の ID を持つという問題が解決しますか?

私が達成しようとしているのは、各エンティティが 0 から n までの独自の ID を持つこと、各エンティティ タイプが独自のシーケンスを持つことです。プロファイル エンティティも 0 から開始します。

4

2 に答える 2

0

はい、エンティティの数に関係なく、自動生成された ID またはシーケンスは常に独立しています。PostgreSQL の場合、データ型を bigint として使用する場合は、データベースで手動でシーケンスを作成する必要がありますが、bigserial として使用する場合そのテーブルのdbサーバーで明示的にシーケンスを作成する必要はありません。楽しみ.........

于 2012-04-18T07:03:19.973 に答える
0

いいえ、すべての種類に独自の ID シーケンスがあり、重複する可能性があります。allocate_ids API を使用して一意の ID を割り当てることもできますが、エンティティの種類を知らずにエンティティをクエリすることはできないことに注意してください (これが、これを行う理由だと思います)。あなたのIDを含むものを見つけてください。

于 2012-04-19T04:25:45.807 に答える