0

内部に別のオブジェクト「コース」を含むオブジェクト「インスタンス」があります。新しいインスタンス オブジェクトを永続化しようとすると、Course が null の場合、次のエラーが発生します。

java.lang.IllegalStateException: During synchronization a new object was found through a relationship that was not marked cascade PERSIST: null

コースの注釈は次のとおりです。

@OneToOne(cascade = CascadeType.REFRESH,optional=true)
    public Course getCourse() {
        return course;
    }

null のものを永続化しようとする理由がわかりません。null の場合、そのフィールドをデータベースに null のままにしておく必要がありますよね?

4

1 に答える 1

1

null のものを永続化しようとする理由がわかりません。null の場合、そのフィールドをデータベースに null のままにしておく必要がありますよね?

デフォルトでは、TopLink JPAはエンティティのすべてのフィールドが永続的であると想定しています。永続的ではないエンティティのフィールドまたはプロパティを指定する場合は、それを でマークする必要があります@Transient(ただし、これはここで必要なものではありません)。

したがって、私にとって、このエラーは、エンティティOneToOneの関係の終わりに適切なカスケード タイプを指定しなかった結果です。Instance使用していない理由はわかりませんALLが、少なくとも追加する必要がありますPERSIST

于 2009-11-10T00:07:08.993 に答える