簡體   English   中英

Symfony2學說鑒別器映射兩個數據庫

[英]Symfony2 Doctrine DiscriminatorMap two Databases

我的項目中有兩個數據庫。

第一個數據庫名為: global
第二個數據庫名為: first_db

全局數據庫具有表CarMoto ,而first_db數據庫具有表ItemsBusShip

在帖子下方,您會看到表Items的注釋。

 * @ORM\Table(name="Items")
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="type", type="string")
 * @ORM\DiscriminatorMap( {
 *      "car" = "Project\ItemBundle\EntityGlobal\Car",
 *      "moto" = "Project\ItemBundle\EntityGlobal\Moto",
 *      "bus" = "Bus",
 *      "ship" = "Ship",
 *  }
 * )

當我使用DQL創建查詢時,它不理解carmoto在另一個數據庫中。 我發現一個Beta解決方案,如果實體CarMoto使用此方法設置注釋

* @ORM\Table(name="global.Moto")
* @ORM\Table(name="global.Car")

在更新架構上,我沒有問題,但這不是很安全。 我知道我可以編寫本機查詢,但是我不確定它的最佳方式。

不使用本機查詢的一種更好的方法是什么?

在Symfony的基本設置中,您僅使用1個數據庫,該數據庫在parameters.yml中定義。 可以使用第二個數據庫,但這會使一切變得更加復雜

可以這樣設置多個數據庫(連接): http : //symfony.com/doc/current/cookbook/doctrine/multiple_entity_managers.html

但是無法連接來自不同數據庫(連接)的不同實體,請參見以下答案: 與多個實體管理器一起使用關系

我建議您強烈考慮將表合並到一個數據庫中,以使您的生活更加輕松。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM