【发布时间】:2016-09-14 14:44:09
【问题描述】:
我是 Hibernate JPA 的新手.....我有一个父表和多个子表。我想根据父表的存在在子表中插入记录。我不想在父表中插入任何记录.如果父表中存在条目,那么我想在子表中插入。我尝试将父表主键中的可插入和可更新设置为 false。但它不工作。我正在使用 JPA 2.0 版本。提前谢谢你。请让我知道任何其他信息。
================ 从 cmets 复制粘贴:
代码示例:
@Entity
@NamedQuery(name="Custome.findAll", query="SELECT p FROM Customer p")
public class Customer extends AbstractObject implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private CustomerPK pk;
@Temporal(TemporalType.DATE)
@Column(name="end_dt")
private Date endDt;
@Column(name="desc_txt")
private String descTxt;
//bi-directional many-to-one association to Dependent
@OneToMany(mappedBy="customer", cascade=CascadeType.ALL)
private List<Dependent> dependents = new ArrayList<>();
}
我想更新客户表中的 descTxt 并希望插入从属表。如果 CustomerPK 存在于表中,那么我想更新,否则我想跳过更新 Customer 表中的记录并插入。目前我正在使用 session.saveorUpdate(object) 如果记录存在,它正在更新父记录并插入到子表中,但是如果父记录不存在,那么它正在插入父记录和我不想在父记录中插入的子记录记录
【问题讨论】:
-
请添加一些代码来显示您要执行的操作?什么是父实体和子实体,它们之间的关系如何?
-
代码示例:@Entity @NamedQuery(name="Custome.findAll", query="SELECT p FROM Customer p") publi } c class Customer extends AbstractObject implements Serializable { private static final long serialVersionUID = 1升; @EmbeddedId 私人客户PK pk; @Temporal(TemporalType.DATE) @Column(name="end_dt") 私人日期 endDt; @Column(name="desc_txt") 私有字符串 descTxt; //与Dependent的双向多对一关联 @OneToMany(mappedBy="customer", cascade=CascadeType.ALL) private List
dependents = new ArrayList(); -
我想更新客户表中的 descTxt 并希望插入从属表。如果 CustomerPK 存在于表中,那么我想更新,否则我想跳过更新 Customer 表中的记录并插入。目前我正在使用 session.saveorUpdate(object) 如果记录存在,它正在更新父记录并插入到子表中,但是如果父记录不存在,那么它正在插入父记录和我不想在父记录中插入的子记录记录