1

私が持っている3つのpojoを取得し、Hibernateの機能を使用して、それらに一致するテーブルをデータベースに生成したいと思います。クラスは、映画、評価者、評価です。これが映画です。評価者は、評価のリストが接続されているのと実質的に同じです。

public class Movie{    
    @Id
    @GeneratedValue(generator = "IdGenerator", strategy = Generation Type.TABLE)
    @TableGenerator(name = "IdGenerator",
    pkColumnValue = "movieId")
    private long id;
    private String name;
    @OneToMany(mappedBy = "id.rater")
    private List<Rating> ratings;
}

評価は大きく異なります。EmbeddedIdを使用しています。これが私がこれまでに持っているものです。

public class Rating{
    @Embeddable
    public static class RatingId
        {
            @ManyToOne
            @JoinColumn(name = "movieId")
            private Movie movie;
            @ManyToOne
            @JoinColumn(name = "raterId")
            private Rater rater;
        }
    @EmbeddedId
    private RatingId id;
    private String comment;
    private int rating;
    }

だから私はこれを尋ねます:この埋め込みIDセットアップを使用するにはどのような特別な注釈が必要ですか?また、hbm2ddl値の適切なキーワードはどれですか?「create」値を使用したいように見えますが、それについて詳しく読むと、Hibernateが既存のテーブルを空にすることがわかります。私はその権利を読みましたか?ありがとう。

4

1 に答える 1

0

hbm2ddlのキーワードについて、「update」:スキーマを更新します。「create」:スキーマを作成し、以前のデータを破棄します。だから、私は「更新」があなたが探しているキーワードだと思います。

埋め込みIDを設定するために使用する必要があるアノテーションに来ると、それは「@EmbeddedID」です。主キー自体を埋め込みオブジェクトにする必要がある場合に使用されます。「この埋め込みIDセットアップを使用するには、どのような特別なアノテーションが必要ですか?」とはどういう意味ですか?

于 2012-07-06T14:58:22.273 に答える