gpt4 book ai didi

Doctrine 同一实体的多个存储库

转载 作者:行者123 更新时间:2023-12-05 00:00:43 25 4
gpt4 key购买 nike

同一个实体可以有两个存储库吗?

我尝试了类似的东西,但它不起作用..

class PackageRepository extends EntityRepository
{
public function __construct($em, Mapping\ClassMetadata $class)
{
$cmf = $em->getMetadataFactory();
$class = $cmf->getMetadataFor('Product');
parent::__construct($em, $class);
}
}

有任何想法吗 ?

最佳答案

首先,你为什么要这样做?

其次,回答你的问题。您可以根据需要使用尽可能多的存储库来处理相同的实体,毕竟它们只是简单的类。

但是您只能使用@Repository 注释(或 YAML 或 XML 等)将一个类与实体类链接起来。所有映射数据都存储在 EntityManager 中。 EntityManager 将知道只有一个存储库类与实体类链接,如果您尝试使用 $entity->getReposiotry() 获取它或类似的,它只会返回链接的类。

但是没有什么可以阻止您创建自己的类,这些类会执行一些查询并直接、明确地调用它们,而不依赖于 EntityManagers 存储库映射。

关于Doctrine 同一实体的多个存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9616772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com