2016-03-20 18 views
0

私は2つのクラスを持っています:UserとCompany。OneToMany関係で外部キー列にnullを設定する方法、Hibernate

ユーザーテーブルで外部キーcompany_idをnullに設定するためにCompanyを削除する必要があります。どうすればこのことができますか?

+0

user.setCompany(null); Company.getEmployees()。remove(emp); ? –

+0

私はこれがCascadeTypeかsmthでできると思います。私は方法がわからない。 –

+0

削除をカスケードしたい場合は「カスケードタイプと関係があります」がありますが、あなたの質問にそれをしたいことは言及されていないことを心に留めておいてください。 –

答えて

0

通常、記述する関係は、Userエンティティを参照する外部キーにconstraintで作成されます。これはnullに設定できないためです。 nullに設定すると、orphaned行になり、不良なデータベースになります。

一方、2つのエンティティをジョインとは別に保持する必要がある場合、その関係は記述しているとおりではありません。

このケースでは、企業とユーザー(Person?)は必ずしも参加する必要はなく、両方とも存在する必要があります。私はEmploymentのような新しいエンティティを提案します。それはCompanyUserの両方のidを持っているという意味でjoin tableとして効果的に機能しますが、startdate,enddate、およびcurrent employerなどの詳細情報を持つこともできます。

関連する問題