Php symfony 3在不同的实体管理器中将一个实体映射到另一个实体

Php symfony 3在不同的实体管理器中将一个实体映射到另一个实体,php,symfony,Php,Symfony,我得到了一个Symfony项目,它有两个数据库,因此有两个实体管理器和两个不同的包(AppBundle和CommonBUndle)。Config.yml如下所示: orm: default_entity_manager: default auto_generate_proxy_classes: "%kernel.debug%" entity_managers: default: connection: default

我得到了一个Symfony项目,它有两个数据库,因此有两个实体管理器和两个不同的包(AppBundle和CommonBUndle)。Config.yml如下所示:

orm:
    default_entity_manager:   default
    auto_generate_proxy_classes: "%kernel.debug%"
    entity_managers:
        default:
            connection:       default
            auto_mapping:     true
            naming_strategy:  doctrine.orm.naming_strategy.underscore
        common:
            connection:       common_data
            auto_mapping:     false
            mappings:
                CommonBundle:     ~
            naming_strategy:  doctrine.orm.naming_strategy.underscore
有两个实体:TestPhase(在AppBundle中)和IntentObject(在CommonBUndle中)

TestPhrase.php实体:

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use CommonBundle\Entity\IntentSubject;

/**
* TestPhrase
*
* @ORM\Table(name="test_phrase", indexes={@ORM\Index(name="KJHWJELKFH", columns={"phraseset_id"})})
* @ORM\Entity
*/

class TestPhrase
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
private $id;

/**
 * @var \CommonBundle\Entity\IntentSubject
 *
 * @ORM\ManyToOne(targetEntity="CommonBundle\Entity\IntentSubject")
 * @ORM\JoinColumns({
 *   @ORM\JoinColumn(name="definedsubject", referencedColumnName="rowId")
 * })
 */
private $definedsubject;
<?php

namespace CommonBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;

/**
 * IntentSubject
 *
 * @ORM\Table(name="Intent_subject", indexes={@ORM\Index(name="RGKJSDFHGSFG", columns={"Intent_id"})})
 * @ORM\Entity
 */

class IntentSubject
{
/**
 * @var integer
 *
 * @ORM\Column(name="row_id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
private $rowId;

听起来好像您正试图跨实体管理器关联实体?那不行。实体经理是相互独立的。是的,这就是我试图做的。我可以写一个
JOIN
语句并以这种方式映射数据吗?不太可能。您可以使用一个实体管理器,并在IntentObject中使用database_name.table_name,但这反过来会导致许多其他问题和限制。可能需要重新考虑你的方法。