0

@OneToMany に関する多くのトピックとフォーラムを読みましたが、残念ながらどれも役に立ちませんでした。

たとえば、次のようなエンティティがあります。

@Entity
@Table(name = "MANAGER")
public class Manager{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "MAN_ID")
    private long id;

    @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinColumn(name = "MAN_ID", updatable=true)     
    private Set<Workers> workers;

    @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinColumn(name = "MAN_ID", updatable=true)   
    private Set<Helpers> helpers;

...
}

@Entity
@Table(name = "WORKERS")
public class Workers{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ID")
    private long id;

...
}

@Entity
@Table(name = "HELPERS")
public class Helpers{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ID")
    private long id;

...
}

そして今、初めてManagerオブジェクトを保存しようとしています(両方のセットを空にしないでください)

Session session = getSession();
Transaction tx = session.beginTransaction();
session.save(holder);
tx.commit();

その見返りに、休止状態がどのように挿入を試みているかがわかりますが、ワーカーとヘルパーの更新はありません。Manager を DB から取得すると、両方のリストが空 (null) になります。ここで何が欠けていますか?

4

1 に答える 1

2

null許容型が欠落していたようです

@JoinColumn(name = "MAN_ID", nullable = false)  
于 2012-12-18T13:59:22.063 に答える