学说2 2个表的映射,错误



zend框架3,学说2

/**
* @ORMEntity
* @ORMTable(name="object")
*/
class Object 
{
    /**
    * @ORMId
    * @ORMGeneratedValue
    * @ORMColumn(name="id")
    */
    protected $id;
   /**
    * @ORMOneToOne(targetEntity="..Host", inversedBy="object")
    * @ORMJoinColumn(name="ip", referencedColumnName="IP")
    */
   protected $host;
}
/**
 * @ORMEntity
 * @ORMTable(name="host")
 */
class Host 
{
    /**
     * @ORMId
     * @ORMColumn(name="IP")
    */
    protected $ip;

    /**
     * @ORMOneToOne(targetEntity="..Object", mappedBy="host")
     * @ORMJoinColumn(name="IP", referencedColumnName="ip")
     */
    protected $object;
}

我有一个错误:

错误" object的主密钥ID缺少值"。

为什么?它似乎是根据示例> 5.3进行的。站点学说的一对一的双向

您传递给joinColumn的参数不正确。您可以在此处查看Doc中的Doc。

尝试这样:

// For Object class: 
// @ORMJoinColumn(name="host_ip", referencedColumnName="ip")
// For Host class
// @ORMJoinColumn(name="object_id", referencedColumnName="id")

除此之外:OneTo酮注释中不支持MAPAPEDBY。您可以使用目标态度和反转,但不能使用MAPAPPYBY。

另一方面,使IP成为主要密钥似乎是错误的。您应该有一个自动生成的主ID来进行主机,并使用它来连接实体。您仍然可以将IP字段设置为唯一,因此您不会重复。另外,您没有其他字段,甚至可以将IP放入对象类中。

另外,我不建议将对象用作您的班级名称。太一般了。

相关内容

  • 没有找到相关文章

最新更新