原则:在一个学说实体中放置一个属性会影响合并/持久吗?

时间:2016-08-25 09:13:01

标签: php entity-framework doctrine-orm doctrine entity

我使用的是Doctrine 2.5.0,我对它很新。

我想知道为什么属性和关联的位置会影响实体的保存。

我有一个具有一些属性和一些关联的实体。我最近在至少3个不同的实体上注意到这一点,如果在关联之后放置属性,它将不会在数据库中更新(使用merge和flush)。

因此,在下面的实体中,名称和其他属性不会更新。

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="products")
 */

class Product
{
/**
 * @ORM\Id
 * @ORM\Column(type="integer", length=8)
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

/**
 * @ORM\OneToOne(targetEntity="Shop")
 * @ORM\JoinColumn(name="shopId", referencedColumnName="id")
 */
protected $shop;

/**
 * @ORM\Column(type="string", length=255)
 */
protected $name;

/*Some other properties*/

/*Getters and Setters*/     
}

但这会得到更新。注意$ name(以及所有其他属性)和$ shop的位置。

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(
 *     name="products"
 * )
 */
class Product
{
/**
 * @ORM\Id
 * @ORM\Column(type="integer", length=8)
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

/**
 * @ORM\Column(type="string", length=255)
 */
protected $name;

/*ALL other properties*/

/**
 * @ORM\OneToOne(targetEntity="Shop")
 * @ORM\JoinColumn(name="shopId", referencedColumnName="id")
 */
protected $shop;

/*Getters and Setters*/     
}

我想改变位置,因为在我的一个实体中,我注意到只有关联后放置的属性没有在数据库中更新。

0 个答案:

没有答案