我有两个表:t_promo_program和t_promo_program_param。

它们由以下JPA实体表示:

@Entity
@Table(name = "t_promo_program")
public class PromoProgram {
  @Id
  @Column(name = "promo_program_id")
  private Long id;

  @OneToMany(cascade = {CascadeType.REMOVE})
  @JoinColumn(name = "promo_program_id")
  private List<PromoProgramParam> params;
}

@Entity
@Table(name = "t_promo_program_param")
public class PromoProgramParam {
  @Id
  @Column(name = "promo_program_param_id")
  private Long id;

  //@NotNull // This is a Hibernate annotation so that my test db gets created with the NOT NULL attribute, I'm not married to this annotation.
  @ManyToOne
  @JoinColumn(name = "PROMO_PROGRAM_ID", referencedColumnName = "promo_program_id")
  private PromoProgram promoProgram;
}


当我删除PromoProgram时,Hibernate使用以下命令命中我的数据库:

update
    T_PROMO_PROGRAM_PARAM
set
    promo_program_id=null
where
    promo_program_id=?

delete
from
    t_promo_program
where
    promo_program_id=?
    and last_change=?


我不知所措,从哪里开始寻找问题的根源。

最佳答案

糟糕,这是PromoProgram中缺少的“ mappedBy”字段。

10-07 18:56
查看更多