1

私の質問はばかげているように見えるかもしれません。私は JPA を初めて使用し、その基本的な概念を理解しようとしています。そこで使える @Many-to-one エンティティ関係があることを知りました。私の質問は、@One-to-many 関係を持っているときに、なぜ誰かがこれを使用したいのですか? つまり、後者を持っていれば、関係を知り、クエリを正しく送信するのに十分ですか? そうでない場合は説明してください。たぶん、この 2 つの関係についての私の考えは完全に間違っています。よりよく理解できるように、例としてシナリオを提供してください。ありがとう

4

2 に答える 2

1

@ManyToOne両方とも@OneToMany、単一の双方向関係の 2 つの側面を表すために使用される同じ概念の一部です。

リレーションシップを一方向にしたい場合、つまりエンティティの 1 つが別のエンティティにトラバースできない場合は、注釈の 1 つを使用できます。どちらを決定するには、どのエンティティが関係について知っている必要があり、どのエンティティがそうでないかを決定する必要があります。

しかし、双方向のリレーションが必要な場合は、両方を使用することがよくあります。

于 2013-02-12T13:14:30.440 に答える
1

OneToManyコレクションのマッピングに使用されます。この関係を双方向にしたい場合はManyToOne、反対側にマッピングを追加する必要があります。

Hibernate マッピングあり: Person N <---> 1 Address

<class name="Person">
    <id name="id" column="personId"/>
    <many-to-one name="address" column="addressId"/>
</class>

<class name="Address">
    <id name="id" column="addressId"/>
    <set name="people">
        <key column="addressId"/>
        <one-to-many class="Person"/>
    </set>
</class>

ManyToOne2 つのオブジェクト間の依存関係をマップするためにも使用できます。この場合、関係を双方向にしたい場合はOneToOne、反対側にマッピングを追加する必要があります。

Hibernate マッピングあり: Person 1 <---> 1 Address

<class name="Person">
    <id name="id" column="personId"/>
    <many-to-one name="address" column="addressId" unique="true"/>
</class>

<class name="Address">
    <id name="id" column="addressId"/>
   <one-to-one name="person" property-ref="address"/>
</class>
于 2013-02-12T13:44:58.210 に答える