私は、次のしている休止状態entitesを外部キーを設定し、私はDAOでエンティティ«のModelView»を削除するとHibernateはnullにする場合、削除するエンティティ
@Entity
public class Page {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "page_id")
private Integer id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "page_id")
@IndexColumn(name = "modelView_id")
private Set<ModelView> modelViews = new HashSet<ModelView>();
/* getters and setters */
}
私が持っている例外:
ORA-01407: unable to replace ("MODEL_VIEW"."PAGE_ID") to NULL
どうしたのですか?削除する前に外部キーをNULLに設定するのはなぜですか?
この場合には、私は、インサートエンティティ«のModelView»(ORA-01400:( "MODEL_VIEW" "PAGE_ID" にNULLを挿入することができない))に同じエラーを持っているので、これは、私のためのソリューションではありません。私はset FK nullableを試してみましたが、良い考えではありません。他の解決策はありますか? – AnEi
この提案された解決策は、その問題をINSERT文でも解決する必要があります。 'insertable'と' updatable'を 'false'に設定すると、Hibernateは' ModelView'レコードへの変更の保存を手動で処理するように指示します。これは、最初に 'Page'レコードをINSERT/UPDATEしてから' ModelView'でFKを設定し、それらを独立して保存することを意味します。これを行うと、FKがNULLの場合がありません。 –
@AnEiこれらのエラーがまだ発生している場合は、使用しているコードの一部を共有することはできますか? –