【问题标题】:Toplink trying to persist null objectToplink 试图持久化空对象
【发布时间】:2009-11-09 20:09:32
【问题描述】:

我有一个对象“实例”,里面有另一个对象“课程”。尝试持久化新的 Instance 对象时,如果 Course 为空,我会收到以下错误:

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;
    }

我不明白为什么它试图坚持一些为空的东西。如果它为空,它应该只将该字段留在数据库中,对吗?

【问题讨论】:

标签: java jpa toplink-essentials


【解决方案1】:

我不明白为什么它试图坚持一些为空的东西。如果它为空,它应该在数据库中将该字段保留为空吗?

默认情况下,TopLink JPA 假定实体的所有字段都是持久的。如果你想指定一个实体的字段或属性不是持久化的,你需要用@Transient标记它(但这不是你想要的)。

所以,对我来说,这个错误是由于没有为Instance 实体中关系的OneToOne 端指定正确的级联类型。我不能说你为什么不使用ALL,但你至少需要添加PERSIST

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 2015-10-29
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 2016-02-17
    • 2021-09-15
    相关资源
    最近更新 更多