Doctrine DBAL可以与ORM查询生成器混合使用吗?
问题描述:
我试图创建一个使用ORM一个QueryBuilder的。但是我偶然发现一个实体与两个可能的表有关系。有了这种结构,它将(恕我直言)不可能映射到实体本身。Doctrine DBAL可以与ORM查询生成器混合使用吗?
╔═══════╗ ╔═══════╗ ╔═══════╗
║ ValB ║ ║ Main ║ ║ ValC ║
╠══╦════╣ ╠══╦════╣ ╠══╦════╣
║ *║ pk ║-- + ║ *║ pk ║ +---║ *║ pk ║
╠══╬════╣ | ╠══╬════╣ | ╠══╬════╣
║ ║ ║ +--║ ║v_id║---+ ║ ║ ║
╠══╬════╣ ╠══╬════╣ ╠══╬════╣
║ ║ ║ ║ ║ ║ ║ ║ ║
╚══╩════╝ ╚══╩════╝ ╚══╩════╝
是否是可能的ORM的QueryBuilder,或将仍然使用ORM QueryBuilder的主要是在代码的任何其它方式混合DBAL QueryBuilder的。
PS。我没有设计数据库和即时通讯只是优化它。对不起,这个:(
答
不,它没有任何意义,因为后来ORM必须映射结果的对象。你不能在Main
地图都ValB
和ValC
相同的属性做是正确的,应该有Main
台单独的字段分别ValB
和ValC
关系,即使它们具有相同的价值。这就像
╔═══════╗ ╔════════╗ ╔═══════╗
║ ValB ║ ║ Main ║ ║ ValC ║
╠══╦════╣ ╠══╦═════╣ ╠══╦════╣
║ *║ pk ║-- + ║ *║ pk ║ +---║ *║ pk ║
╠══╬════╣ | ╠══╬═════╣ | ╠══╬════╣
║ ║ ║ +--║ ║vB_id║ | ║ ║ ║
╠══╬════╣ ╠══╬═════╣ | ╠══╬════╣
║ ║ ║ ║ ║vC_id║---+ ║ ║ ║
╚══╩════╝ ╚══╩═════╝ ╚══╩════╝
您可以复制v_id
列,然后做出适当的学说映射。
是的,我知道解决方案,但有这个不诉诸到创建另一个表的方法吗?因为我们在生产,它非常繁琐和危险地迁移到这个结构中。 – rrw
我解决了你的问题。但不是。你可能只能在这里和DBAL呆在一起。 –
谢谢你的回答启蒙我。我只是想,也许有一种方法来动态地映射实体。但我认为没有办法。谢谢! :) – rrw