[英]Can Doctrine DBAL be mixed with ORM Query Builder?
我正在尝试使用ORM创建一个querybuilder。 但是我偶然发现了实体上与2个可能的表有关联的字段。 使用这种结构,将无法(IMHO)将其映射到实体本身。
╔═══════╗ ╔═══════╗ ╔═══════╗
║ ValB ║ ║ Main ║ ║ ValC ║
╠══╦════╣ ╠══╦════╣ ╠══╦════╣
║ *║ pk ║-- + ║ *║ pk ║ +---║ *║ pk ║
╠══╬════╣ | ╠══╬════╣ | ╠══╬════╣
║ ║ ║ +--║ ║v_id║---+ ║ ║ ║
╠══╬════╣ ╠══╬════╣ ╠══╬════╣
║ ║ ║ ║ ║ ║ ║ ║ ║
╚══╩════╝ ╚══╩════╝ ╚══╩════╝
可以将DBAL QueryBuilder与ORM QueryBuilder混合使用,或以其他方式仍然在代码上主要使用ORM QueryBuilder的任何其他方式。
PS。 我没有设计数据库,而只是对其进行了优化。 非常遗憾 :(
不,这没有任何意义,因为以后的ORM必须将结果映射到对象。 你不能同时映射ValB
和ValC
在同一财产Main
为了正确地做到这一点,在Main
表中应该有用于ValB
和ValC
关系的单独字段。 即使它们具有相同的值。 像这样
╔═══════╗ ╔════════╗ ╔═══════╗
║ ValB ║ ║ Main ║ ║ ValC ║
╠══╦════╣ ╠══╦═════╣ ╠══╦════╣
║ *║ pk ║-- + ║ *║ pk ║ +---║ *║ pk ║
╠══╬════╣ | ╠══╬═════╣ | ╠══╬════╣
║ ║ ║ +--║ ║vB_id║ | ║ ║ ║
╠══╬════╣ ╠══╬═════╣ | ╠══╬════╣
║ ║ ║ ║ ║vC_id║---+ ║ ║ ║
╚══╩════╝ ╚══╩═════╝ ╚══╩════╝
您可以复制v_id
列,然后在Doctrine中进行适当的映射。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.