首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原则ORM\表(name=“名称”)不起作用

原则ORM\表(name=“名称”)不起作用
EN

Stack Overflow用户
提问于 2020-10-08 01:03:26
回答 2查看 591关注 0票数 0

我的实体类:

代码语言:javascript
复制
use Doctrine\ORM\Mapping as ORM;

/**
 * CustomerEntity
 * @ORM\Entity
 * @ORM\Table(name="customers")
 * @ORM\Table(uniqueConstraints={
 *   @ORM\UniqueConstraint(name="email", columns={"email"}),
 * })
 * @ORM\Entity(repositoryClass="Customer\V1\Rest\Customer\CustomerRepository")
 */
class CustomerEntity
{

但是当我添加一个客户时,它会抛出这个错误,它正在寻找错误的表。

SQLSTATE42S02:基本表或视图未找到: 1146表'database.customerentity‘不存在

我试过了,但没有用:

代码语言:javascript
复制
@ORM\Table(name="`customers`")

模式生成显示如下:

代码语言:javascript
复制
$ doctrine-module orm:schema-tool:update --dump-sql

 The following SQL statements will be executed:

 CREATE TABLE CustomerEntity (id VARCHAR(36) NOT NULL, 
 .....

我做错什么了?

我也清理了缓存

代码语言:javascript
复制
orm:clear-cache:metadata
orm:clear-cache:query
orm:clear-cache:result
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-10 10:09:15

您所遇到的问题是,Doctrine只期望每个注释一次。试试这个:

代码语言:javascript
复制
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Table(name="customers", uniqueConstraints={
 *   @ORM\UniqueConstraint(name="email", columns={"email"}),
 * })
 * @ORM\Entity(repositoryClass="Customer\V1\Rest\Customer\CustomerRepository")
 */
class CustomerEntity
{
票数 1
EN

Stack Overflow用户

发布于 2020-10-09 04:55:57

这真是令人沮丧,经过ORM的核心代码之后,我就能找到问题所在。没有时间进一步调查,以验证错误或这是一个特性(正常行为)。

通过在@ORM\Table(name="customers")下面插入uniqueConstraints,ORM能够识别表名。

代码语言:javascript
复制
use Doctrine\ORM\Mapping as ORM;

/**
 * CustomerEntity
 * @ORM\Entity
 * @ORM\Table(uniqueConstraints={
 *   @ORM\UniqueConstraint(name="email", columns={"email"}),
 * })
 * @ORM\Table(name="customers")
 * @ORM\Entity(repositoryClass="Customer\V1\Rest\Customer\CustomerRepository")
 */
class CustomerEntity
{
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64254367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档