こんにちは、2 つのエンティティを結合したいと考えています。エンティティは異なるデータベースにあります。
データベース構成をセットアップする方法は次のとおりです。
doctrine:
dbal:
default_connection: default
connections:
default:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
mapping_types:
enum: string
data_warehouse:
driver: %database_data_warehouse_driver%
host: %database_data_warehouse_host%
port: %database_data_warehouse_port%
dbname: %database_data_warehouse_name%
user: %database_data_warehouse_user%
password: %database_data_warehouse_password%
charset: UTF8
mapping_types:
enum: string
orm:
auto_generate_proxy_classes: %kernel.debug%
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
MyBundle1: ~
data_warehouse:
connection: data_warehouse
mappings:
MyBundle2: ~
そして、これらは私のエンティティです:
namespace My\Bundle1\Entity;
use My\Bundle1\Entity\MyBundle2Entity;
class MyBundle1Entity
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
}
namespace My\Bundle2\Entity;
class MyBundle2Entity
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var MyBundle1Entity
*
* @ORM\ManyToOne( targetEntity="My\Bundle1\Entity\MyBundle1Entity")
* @ORM\JoinColumn(name="my_bundle1_entity_id", nullable=true)
*/
private $myBundle1Entity;
}
doctrine:schema:update コマンドを使用しようとすると、エラーが発生します。
php app/console doctrine:schema:create --dump-sql --em=data_warehouse
エラー:
[Doctrine\Common\Persistence\Mapping\MappingException]
クラス 'My\Bundle1\Entity\Bundle1Entity' はチェーン構成された名前空間 My\Bundle2\Entity\Bundle2Entity で見つかりませんでした
私のセットアップは正しいですか、それとも何か完全に間違っていますか? 2 つのエンティティ マネージャーとそこに接続を定義し、処理する必要があるバンドルを伝えると仮定します。各バンドルに 1 つのデータベースからのエンティティのみがあることを確認します。
ご協力いただきありがとうございます