doctrine2 oracle查询方法查找,不起作用

时间:2016-01-09 18:58:56

标签: php oracle orm doctrine-orm

我有实体:

/**
 * @ORM\Entity
 * @ORM\Table(name="TERCEROS")
 */
class Empleado
{
    /**
     * @ORM\Id
     * @ORM\Column(type="string", name="CODIGO", length=15)
     * @ORM\GeneratedValue(strategy="NONE")
     * @var string
     */
    protected $cedula;

    /**
     * @ORM\Column(type="string", name="APELLIDO1")
     * @var string
     */
    protected $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);

当使用任何方法查找哪个应返回一个 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 个答案:

答案 0 :(得分:0)

一切看起来都不错,但可能是你遇到了大写/小写问题。您似乎已将所有表和列名称大写。

实体声明中的表名和列名是否正确?这似乎有些不一致:

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

因此你可能会查询错误的表/列......!