相关疑难解决方法(0)

@UniqueConstraint和@Column(unique = true)选项之间的Doctrine ORM级别差异

在数据库级别,使用一个选项而不是另一个选项来定义UNIQUENESS没有区别,如下所示.虽然@UniqueConstraint在其文档中读到" 它只在SchemaTool模式生成上下文中有意义 ",但它们之间是否存在ORM级别差异?我的意思是当我们运行查询时,处理的事情会有所不同吗

示例 - @UniqueConstraint

/**
 * @ORM\Entity
 * @ORM\Table(
 *      name="user",
 *      uniqueConstraints={
 *          @ORM\UniqueConstraint(columns={"email"})
 *      }
 * )
 */
class User
{
    /**
     * @ORM\Column(name="email", type="string", length=100)
     */
    private $email;
}
Run Code Online (Sandbox Code Playgroud)

DQL

CREATE TABLE `user` (
  `email` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  UNIQUE KEY `UNIQ_8D93D649E7927C74` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Run Code Online (Sandbox Code Playgroud)

示例 - @Column - unique = true

/**
 * @ORM\Entity
 * @ORM\Table(name="user")
 */
class User …
Run Code Online (Sandbox Code Playgroud)

orm doctrine symfony doctrine-orm

5
推荐指数
1
解决办法
1518
查看次数

标签 统计

doctrine ×1

doctrine-orm ×1

orm ×1

symfony ×1