使用@OneToOne的语句 - Doctrine2

时间:2012-08-08 07:23:42

标签: php symfony doctrine-orm

我有一个包含Products的表和另一个包含Notes的表。每种产品都可以有或没有一些注释。我只需要注意知道他们所提到的产品,但产品不知道它的注释。我认为这应该是我的代码:

namespace EM\MyBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

use EM\MyBundle\Entity\Productss;

/**
 * @ORM\Entity
 * @ORM\Table(name="notes")
 */
class Notess
{
/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

/**
 * @OneToOne(targetEntity="Productss")
 * @JoinColumn(name="products_id", referencedColumnName="id")
 **/
private $products; 
//... 
}

namespace EM\MyBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity
 * @ORM\Table(name="domains")
 */
class Domains
{
/**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;
// ...
}

但是它给出了一个错误:[Doctrine \ Common \ Annotations \ AnnotationException]

[语义错误]属性EM \ MyBundle中的注释“@OneToOne” 实体\ Notes :: $ products从未导入过。你有没有忘记添加“使用 “这个注释的陈述?

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:55)

我认为您打算使用@ORM\OneToOne而不是......

/**
 * @ORM\OneToOne(targetEntity="Productss")
 * @ORM\JoinColumn(name="products_id", referencedColumnName="id")
 */
private $products; 
//... 
}