AppFuse同时保存两个新实体



我试图同时在AppFuse中保存两个实体(Struts2、Hibernate和Spring),这里有一个例子(地址和人是新对象):

person.setAddress(address);
personManager.save(person);

但这不起作用,我得到了这个例外:

object references an unsaved transient instance - save the transient
instance before merge

我必须做:

addressManager.save(address);
person.setAddress(address);
personManager.save(person);

面对面模型我已经声明了这样的地址:

@OneToMany(fetch = FetchType.LAZY, mappedBy = "person", cascade= CascadeType.ALL)
public Address getAddress() {
    return this.address
}

有没有办法一次保存这些新实体?

提前感谢。。!

以下内容可能对您有所帮助

您是否已按照docs_oracle_javax_persistence_OneToMany.html中的说明休耕

示例1:使用泛型的一对多关联

在客户类别中:

@OneToMany(cascade=ALL, mappedBy="customer")
public Set getOrders() { return orders; }

订单类别:

@ManyToOne
@JoinColumn(name="CUST_ID", nullable=false)
public Customer getCustomer() { return customer; }


示例2:不使用泛型的一对多关联

在客户类别中:

@OneToMany(targetEntity=com.acme.Order.class, cascade=ALL,
        mappedBy="customer")
public Set getOrders() { return orders; }

订单类别:

@ManyToOne
@JoinColumn(name="CUST_ID", nullable=false)
public Customer getCustomer() { return customer; }

您可以按照本示例中给出的方式进行OneToManyTargetEntity。

看看这些线程:
stackoverflow_4011472
stackoverflow_9032998

相关内容

  • 没有找到相关文章

最新更新