0

Event複合主キー(開始日と終了日)を含むクラスがあります。

EventPlanningクラスはそのようなオブジェクトのを保持し、XMLSetEvent休止状態を使用してそれらを永続化する必要があります。共通の主キーを持つクラスに対してこれを行うことができます。

<!-- EventPlanning xml -->
....
<id name="id" column="id">
<generator class="native" />
</id>
<property name="name" column="name" type="string" update="false" />

<set name="events" table="events" cascade="all">
    <key column="event_id">   // ###### here! ######
    </key>
    <one-to-many class="myPackage.Event" />
</set>
...

しかし、これが複合キーでどのように機能するかを知ることはできません。

を次のコードに置き換えても<key column="event_id">機能しません。

<key>
    <property column="start_date" />
    <property column="end_date" />
</key>

誰かが正しい構文を教えてくれたら嬉しいです!:)

イベントxmlは次のようになります。

<class name="myPackage.Even" table="events">

        <composite-id>
            <key-property name="startDate" column="start_date" type="date" />
            <key-property name="endDate" column="end_date" type="date" />
        </composite-id>

        <property name="signinDeadline" column="signin_deadline"
            type="date" />
        <property name="confirmationDeadline" column="confirmation_deadline"
            type="date" />

        <set name="participants" table="participants" cascade="all">
            <key column="event_id">
            </key>
            <one-to-many class="myPackage.Participants" />
        </set>

    </class>

前もって感謝します!:)

4

2 に答える 2

0

このようなものは私のために働きます:

<class name="YourClass" table="your_table" ...>
  <composite-id name="compositeId" class="DoubleDate">
     <key-property name="start_date" column="start_date"/>
     <key-property name="end_date" column="end_date"/>
  </composite-id>
  ...
 </class>

public class DoubleDate implements Serializable {
   private Date start_date, end_date;
   public DoubleDate() {
   }
   // setters, getters
}

public class YourClass {
   private DoubleDate compositeId;
   // public no args ctr, getters, setters, etc
}
于 2012-11-24T12:45:03.787 に答える
0

JPAとHibernateをより長く使用した後は、複合主キーを使用するべきではないと言っておきます。キャッシュは、キャッシュされた値を指すキーとしてIDを使用し、パラメータとしてIDgetload期待するようなデータ取得メソッドなどを使用します。idフィールドを使用することで得られる利点は、必要な追加スペースに対して報われます。

于 2013-02-01T15:32:47.640 に答える