使用方法查找的教义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

没有找到,即使我在数据库中插入了 Empleadoapellido1 = 'fulano'cedula = '1234567'

PS:我正在研究 Symfony 之外的学说。

【问题讨论】:

【参考方案1】:

在我看来一切都很好,但可能是您在这里遇到了大写/小写问题。似乎您将所有表名和列名都大写了。

实体声明中的表名和列名是否正确?好像有点不一致:

表:TERCEROS(这不应该是EMPLEADO吗??) 专栏:CODIGO(这不应该是CEDULA吗??)

因此,您可能正在查询错误的表/列...!?

【讨论】:

所有表名和列名都是大写的,实体上的名字改了更符合api的目标,因为在TERCEROS表中存储的是员工,我不知道是因为它在创建时以这种方式调用。我解释错了,findAll() 正确返回数据

以上是关于使用方法查找的教义2 oracle 查询,不起作用的主要内容,如果未能解决你的问题,请参考以下文章

教义命令行界面不起作用

使用 LIMIT 查找 MySQL 中结果总数的教义查询

教义 ORM\Table(name="name") 不起作用

为啥 pi() 函数在使用其 JDBC 驱动程序的 Oracle 中不起作用?

带有数值的 SSIS 查找不起作用

Oracle SQL - 多级相关子查询不起作用