【问题标题】:JPA @ManyToOne CascadeType.PERSISTJPA @ManyToOne CascadeType.PERSIST
【发布时间】:2019-03-31 02:47:09
【问题描述】:

你好,我有一个带有@ManyToOne 关系船的实体

@Entity
public class TerminEntity extends AbstractEntity implements Serializable {


    @ManyToOne(cascade = CascadeType.PERSIST)
    @JoinColumn(name = "PERSON_ID")
    private PersonEntity person;

@MappedSuperclass   
public abstract class AbstractEntity implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "termineIdGenerator")
    @SequenceGenerator(name="termineIdGenerator", sequenceName =    "SEQ_TERMINVERWALTUNG")
   private Long id;

当我尝试将 TerminEntity 与数据库中尚不存在的 PersonEntity 持久化时,我得到 ​​p>

java.lang.IllegalStateException:在同步期间,通过未标记为级联 PERSIST 的关系找到了一个新对象:TerminEntity(person=PersonEntity

为什么? @ManyToOne(cascade = CascadeType.PERSIST) 注解有什么问题?

在 Oracle Weblogic 12c 上运行

【问题讨论】:

    标签: jpa weblogic12c many-to-one


    【解决方案1】:

    我不知道为什么,但是在将注释更改为之后

    @ManyToOne(optional = false, cascade = { CascadeType.PERSIST, CascadeType.MERGE,   CascadeType.REFRESH })
    @JoinColumn(name = "PERSON_ID", referencedColumnName = "ID", nullable = false) 
    

    持久化有效。

    【讨论】:

      猜你喜欢
      • 2016-11-14
      • 2012-03-31
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 2016-09-08
      相关资源
      最近更新 更多