6

我一直在寻找 DB Schema 的确切映射,如下所示示例数据库模式

可以看到 product_i18n 表有两个复合外键(product_id 和 locale_id)。

现在,一旦产品和区域设置实体完成,我想将数据(名称和描述)插入到 product_i18n 表中。

是否有一个类似于使用 Doctrine 2 进行此类映射的示例。或者,如果有人可以简要概述如何处理此类映射,那么您的信息将不胜感激。

PS如果有人需要有关此的更多信息,请不要犹豫,询问。

4

2 回答 2

10

Doctrine 2 原生支持复合键

/**
 * @Entity
 */
class ProductI18N
{
    /** @Id @Column(type="string") */
    private $product;
    /** @Id @Column(type="string") */
    private $locale

    public function __construct($product, $locale)
    {
        $this->product= $product;
        $this->locale= $locale;
    }

始终记住,必须在持久化模型之前设置复合键:

$productI18N = new ProductI18N("Guanabana", "CR");
$em->persist($productI18N );
$em->flush();

有关您的更多信息,请参阅文档: http ://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html

于 2012-12-11T17:38:02.663 回答
4

如果您在字段 1(id 自动增量)和字段 2(指定)中有复合键,请使用:

class ProductI18N
{
    /** @Id @Column(type="string") @GeneratedValue(strategy="AUTO") */
    private $product;
    /** @Id @Column(type="string") @GeneratedValue(strategy="NONE") */
    private $locale
于 2014-09-12T17:02:37.057 回答