私は2つのクラスを持っています:UserとCompany。OneToMany関係で外部キー列にnullを設定する方法、Hibernate
ユーザーテーブルで外部キーcompany_idをnullに設定するためにCompanyを削除する必要があります。どうすればこのことができますか?
私は2つのクラスを持っています:UserとCompany。OneToMany関係で外部キー列にnullを設定する方法、Hibernate
ユーザーテーブルで外部キーcompany_idをnullに設定するためにCompanyを削除する必要があります。どうすればこのことができますか?
通常、記述する関係は、User
エンティティを参照する外部キーにconstraint
で作成されます。これはnull
に設定できないためです。 nullに設定すると、orphaned
行になり、不良なデータベースになります。
一方、2つのエンティティをジョインとは別に保持する必要がある場合、その関係は記述しているとおりではありません。
このケースでは、企業とユーザー(Person?)は必ずしも参加する必要はなく、両方とも存在する必要があります。私はEmployment
のような新しいエンティティを提案します。それはCompany
とUser
の両方のidを持っているという意味でjoin table
として効果的に機能しますが、startdate
,enddate
、およびcurrent employer
などの詳細情報を持つこともできます。
user.setCompany(null); Company.getEmployees()。remove(emp); ? –
私はこれがCascadeTypeかsmthでできると思います。私は方法がわからない。 –
削除をカスケードしたい場合は「カスケードタイプと関係があります」がありますが、あなたの質問にそれをしたいことは言及されていないことを心に留めておいてください。 –