我有两个学说实体:
class User extends BaseUser
{
/**
* @var ArrayCollection
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Account", mappedBy="user")
*/
protected $accounts;
和
class Account
{
/**
* @var \UserBundle\Entity\User
* @ORM\ManyToOne(targetEntity="\UserBundle\Entity\User", inversedBy="accounts")
* @ORM\JoinColumn(name="a_person_obj_id", referencedColumnName="obj_id")
*/
protected $user;
问题是Account实体的数据存储在实体User的不同数据库中。
当我获得用户实体时:
$userRepository = $this->getDoctrine()->getRepository('UserBundle:User', 'db1');
$user = $userRepository->find($user);
并开始按$user->getAccounts()
进行迭代我得到了异常:
SQLSTATE[42P01]: Undefined table: 7 ERROR: relation "account" does not exist
这绝对正确,因为帐户存储在“db2”中,我需要为这些数据使用不同的实体管理器。
在实体的许多数据库之间建立关系的最佳实践是什么?
P.S。我曾经使用postgreSQL数据库。