Doctrine 2 多主键
Posted
技术标签:
【中文标题】Doctrine 2 多主键【英文标题】:Doctrine 2 multiple primary keys 【发布时间】:2011-04-15 12:34:06 【问题描述】:由于某种原因,Doctrine 试图插入一个名为 primary 的索引,而不是在我的 mysql 数据库上实际添加一个主键,这就是 Doctrine 生成的:
CREATE UNIQUE INDEX primary ON my_table (columnOne, columnTwo);
这是我的 SQL 编辑器生成的,这是唯一有效的方法:
ALTER TABLE my_table ADD PRIMARY KEY (columnOne,columnTwo);
这是我的课:
....
class MyTable
/**
* @var integer $columnOne
*
* @Column(name="columnOne", type="integer", nullable=false)
* @Id
* @GeneratedValue(strategy="NONE")
*/
private $columnOne;
/**
* @var integer $columnTwo
*
* @Column(name="columnTwo", type="integer", nullable=false)
* @Id
* @GeneratedValue(strategy="NONE")
*/
private $columnTwo;
【问题讨论】:
你最后是怎么解决的? 【参考方案1】:在此处添加有关多列唯一约束的信息,因为这是我在谷歌搜索时出现的。
如果你想要这样的 SQL:
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
在 Doctrine2 中使用这个注解
@Table(name="ecommerce_products",uniqueConstraints=@UniqueConstraint(name="search_idx", columns="name", "email"))
见:http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/annotations-reference.html#uniqueconstraint
【讨论】:
以上是关于Doctrine 2 多主键的主要内容,如果未能解决你的问题,请参考以下文章
Doctrine2 自定义类型不像主键 Symfony2 那样工作
Symfony 2 Doctrine 通过 id 的有序数组查找