使用方法查找的教义2 oracle 查询,不起作用
Posted
技术标签:
【中文标题】使用方法查找的教义2 oracle 查询,不起作用【英文标题】:doctrine2 oracle querying with methods find, does not work 【发布时间】:2016-04-14 08:24:55 【问题描述】:我有实体:
/** * @ORM\实体 * @ORM\Table(name="TERCEROS") */ 班恩普莱多 /** * @ORM\ID * @ORM\Column(type="string", name="CODIGO", length=15) * @ORM\GeneratedValue(strategy="NONE") * @var 字符串 */ 受保护的$cedula; /** * @ORM\Column(type="string", name="APELLIDO1") * @var 字符串 */ 受保护的$apellido1;然后找经理:
$path = array(__DIR__.'/../../Entities');
$devMode = getenv('DEV_MODE');
$config = Setup::createAnnotationMetadataConfiguration($path, $devMode, null, null, false);
$config->setProxyDir($path[0] . '/Proxy');
$config->setProxyNamespace('Proxy');
$empleadosManager = \Doctrine\ORM\EntityManager::create(arrayparams, $config);
当使用任何方法时 find 应该返回一个 Empleado 这返回 null
$empleadosRepository = $empleadosManager->getRepository(Empleado::class);
$empleados = $empleadosRespository->findAll(); //this returns the data correctly
$empleado = $empleados = $empleadosRespository->find('12345678'); //=null
$empleado = $empleados = $empleadosRespository->findOneBy(['apellido1' =>'fulano']); //=null
没有找到,即使我在数据库中插入了 Empleado
和 apellido1 = 'fulano'
和 cedula = '1234567'
PS:我正在研究 Symfony 之外的学说。
【问题讨论】:
【参考方案1】:在我看来一切都很好,但可能是您在这里遇到了大写/小写问题。似乎您将所有表名和列名都大写了。
实体声明中的表名和列名是否正确?好像有点不一致:
表:TERCEROS
(这不应该是EMPLEADO
吗??)
专栏:CODIGO
(这不应该是CEDULA
吗??)
因此,您可能正在查询错误的表/列...!?
【讨论】:
所有表名和列名都是大写的,实体上的名字改了更符合api的目标,因为在TERCEROS表中存储的是员工,我不知道是因为它在创建时以这种方式调用。我解释错了,findAll()
正确返回数据以上是关于使用方法查找的教义2 oracle 查询,不起作用的主要内容,如果未能解决你的问题,请参考以下文章
教义 ORM\Table(name="name") 不起作用