通过改变@ORM/Entity找不到基表或视图。

问题描述 投票:-1回答:1

你好,当我想使用自定义存储库功能时,我有一些问题。

在我的应用程序中,我使用2个数据库,1个oracle(只读)和1个mariadb(应用程序数据)。

我想在Structure实体(oracle)上使用自定义存储库功能,但它不工作。@ORM\Entity 在Structure注释上,只需在其中建立函数,如find(),findAll()......但我的自定义函数却找不到它。@ORM\Entity(repositoryClass="App\Repository\Echange\StructureRepository")现在没有任何功能工作。我刚刚得到这个 SQLSTATE[42S02]: Base table or view not found: 1146 Table 'ECH_PERS.STRUCTURE' doesn't exist

这是我的代码。如果你想知道解决方案。谢谢。

StructureRepository.php

public function findByLlStructure($ll)
    {
        return $this->createQueryBuilder('s')
            ->andWhere('s.llStructure LIKE :val')
            ->setParameter('val', '%'.$ll.'%')
            ->getQuery()
            ->getResult()
            ;
    }

Controller.php

        $em = $this->getDoctrine()->getManager('oracle');
        $result = $em->getRepository(Structure::class)->findByLlStructure('value');
        dump($result);

Structure.php

/**
 * Structure
 * @ORM\Table(name="ECH_PERS.STRUCTURE", uniqueConstraints={@ORM\UniqueConstraint(name="UK_STRUCTURE_C_STRUCTURE", columns={"C_STRUCTURE"})})
 * @ORM\Entity
 */
class Structure

解决方法 : 我通过将我的实体仓库移动到单独的文件夹中,像这样解决。

EntityMariaDB, EntityOracle

RepositoryMariaDB,RepositoryOracle。

php symfony doctrine-orm repository symfony4
1个回答
0
投票

我确实有一个类似的问题。修正了我的oracle表,并为实体声明模式,如。

/**
 * @ORM\Entity(repositoryClass="App\Repository\TestRepository")
 * @ORM\Table(schema="test")
 */
class Test
© www.soinside.com 2019 - 2024. All rights reserved.