如何理解Doctrine2里面的mappedBy和inversedBy???

如何理解Doctrine2里面的mappedBy和inversedBy???
/**@Entity*/
classCustomer
{
//...
/**
*@OneToOne(targetEntity="Cart",mappedBy="customer")
*/
private$cart;
//...
}
/**@Entity*/
classCart
{
//...
/**
*@OneToOne(targetEntity="Customer",inversedBy="cart")
*@JoinColumn(name="customer_id",referencedColumnName="id")
*/
private$customer;
//...
}
芜湖不芜
浏览 358回答 2
2回答

qq_笑_17

Doctrine是ORM;ORM支持改变关联关系,如将小组的管理员由A变为B;我们可以定义谁“拥有”这个关联关系,使关联就有了“方向”;从而方便了逻辑和编码,即ORM只用检查“拥有”关联关系的对象上关联的变化(如小组的管理员现在是A还是B?)。有inversedBy的,是“拥有”关联关系的一侧。你贴出的代码中,Customer与Cart之间的“谁的购物车”的关联关系,是由Cart拥有;在Customer对象上,改变其cart变量,通过Doctrine保存,并不会导致购物车易主。以上,都是指不写额外代码,靠Doctrine自动识别的情形。

子衿沉夜

Customer和Cart關聯起來兩邊都可以簡單地調用對方/***從Customer中取得Cart的資料**@varCart$cart*/$cart=$customer->getCart();/***從Cart中取得Customer的資料**@varCustomer$customer*/$customer=$cart->getCustomer();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript