1

休止状態を使用して、次のようなオブジェクトをマップしようとしています:

@Entity
public class ParentClass {  
    @Id
    @GeneratedValue
    int Id;

    @OneToMany
    Map<String, ChildClass> map;
}

@Entity
public class ChildClass {
    @Id
    @GeneratedValue
    int Id;

    String text;
}

Hibernate に結合テーブルを作成させたくありません。ChildClass のテーブルに列を追加したい。また、ChildClass にキーのフィールドを追加したくありません。理想的には、オブジェクトを保存するとき、Hibernate はマップ内のキーを自動的に取得して対応するテーブルに保存し、クエリ時にはその逆を行います。これは可能ですか?

キーの ChildClass にフィールドを追加する必要がある場合、このフィールドにマップのキーを自動的に入力することはできますか? 私が尋ねる理由は、JSON Web サービスからデータを取得し、Jackson を使用してそれを解析していて、Jackson にキーを値オブジェクトのフィールドにコピーさせる方法がわからないためです。手動でそれを行うコードを書くこともできますが、それは避けたいと思います。

4

1 に答える 1

0

ジョイント可能でない単方向リレーション:

@Entity
public class Customer implements Serializable {
    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
    @JoinColumn(name="CUST_ID")
    public Set<Ticket> getTickets() {
    ...
}

@Entity
public class Ticket implements Serializable {
    ... //no bidir
}   

ジョイント可能のない双方向:

@Entity
public class Troop {
    @OneToMany(mappedBy="troop")
    public Set<Soldier> getSoldiers() {
    ...
}

@Entity
public class Soldier {
    @ManyToOne
    @JoinColumn(name="troop_fk")
    public Troop getTroop() {
    ...
}

これはドキュメントからのものです: http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/
これらのサンプルをケースに適用してください。

于 2012-12-17T06:47:48.927 に答える