我正在从客户端获取以下json数据。 JSON包含父级和子级详细信息,如下所示-
{
id : 1,
name : "Parent"
children : [
{ id : 1, name : "A" },
{ id : 2, name : "B" }
]
}
我正在将这些json数据映射到父对象和子对象。
class Parent{
/** @Id @Column(type="integer",name="order_no") @GeneratedValue * */
protected $id;
/**
* @OneToMany(targetEntity="Child",cascade={"merge"}, mappedBy="parent" )
*/
protected $children;
}
class SalesOrderDetail extends BaseEntity {
/** @Id @Column(type="integer") @GeneratedValue * */
protected $id;
/**
* @ManyToOne(targetEntity="parent")
* @JoinColumn(name="parent_id")
*/
protected $salesOrder;
}
到目前为止很好。
现在的问题是当我尝试合并父项时
$em->merge($parent)
我收到以下错误。注意:整个对象的父级和子级都是非托管对象,因此我尝试合并。如果我只是合并父项,则可以正常工作,但是如果我尝试保存父项及其子项的全部内容,则会出错。
类型:Doctrine \ ORM \ ORMInvalidArgumentException消息:多个 通过给定的关联找到非持久的新实体 图表:*通过关系发现了一个新实体 未配置为的“ Ziletech \ Database \ Entity \ Parent#itemSet” 实体的级联持久化操作: Ziletech \ Database \ Entity \ Child @ 0000000052218380000000007058b4a6。至 解决此问题:在上显式调用EntityManager#persist() 这个未知的实体或配置级联会在 例如@ManyToOne(..,cascade = {“ persist”})的映射。如果你 无法找出导致问题实施的实体 “ Ziletech \ Database \ Entity \ Child #__ toString()”以获取线索。 *新 通过关系找到实体 未配置为的“ Ziletech \ Database \ Entity \ Parent#itemSet” 实体的级联持久化操作: Ziletech \ Database \ Entity \ Child @ 0000000052218071000000007058b4a6。至 解决此问题:在上显式调用EntityManager#persist() 这个未知的实体或配置级联会在 例如@ManyToOne(..,cascade = {“ persist”})的映射。如果你 无法找出导致问题实施的实体 “ Ziletech \ Database \ Entity \ Child #__ toString()”以获取线索。