这是之前开的一个问题的后续,参考链接
我使用的是 symfony2、donctrine,里面关于数据库的操作,全部用的实体,官方推荐建立表与表之间的关系,我做了一些更改后,发现一个实体无法设置两个多对一的关系,下面是问题的描述与再现:
鉴于上一问题大家不推荐使用物理外健,我做了一些程序方面的处理:
删除数据表物理外健;
在程序中设置相应的实体关系;
简单的er图更新:
商品属性关联表goods_and_attribute相对于商品表goods以及attributes是多对一的关系啊,所以我在实体文件中添加以下程序:
#src/appbundle/resources/config/doctrine/goodsandattribute.orm.ymlappbundle\entity\goodsandattribute: type: entity table: goods_and_attribute id: ... fields: ... manytoone: goods: targetentity: goods inversedby: goodsandattribute joincolumn: name: goods_id referencedcolumnname: id manytoone: attribute: targetentity: attributes inversedby: goodsandattribute joincolum: name: attribute_id referencedcolumnname: id lifecyclecallbacks: { }
在查询数据表的时候我发现只能得到其中一个关系的信息:
$query = $em ->createquery( 'select ga from appbundle:goodsandattribute ga where ga.id = 1');
在orm中如何关联多个表,实现相应信息的查询?例如
$query = $em ->createquery( 'select ga, g, a from applicationsonatamallbundle:goodsandattribute ga join ga.goods g join ga.attribute a where ga.id = 1');
回复内容: 这是之前开的一个问题的后续,参考链接
我使用的是 symfony2、donctrine,里面关于数据库的操作,全部用的实体,官方推荐建立表与表之间的关系,我做了一些更改后,发现一个实体无法设置两个多对一的关系,下面是问题的描述与再现:
鉴于上一问题大家不推荐使用物理外健,我做了一些程序方面的处理:
删除数据表物理外健;
在程序中设置相应的实体关系;
简单的er图更新:
商品属性关联表goods_and_attribute相对于商品表goods以及attributes是多对一的关系啊,所以我在实体文件中添加以下程序:
#src/appbundle/resources/config/doctrine/goodsandattribute.orm.ymlappbundle\entity\goodsandattribute: type: entity table: goods_and_attribute id: ... fields: ... manytoone: goods: targetentity: goods inversedby: goodsandattribute joincolumn: name: goods_id referencedcolumnname: id manytoone: attribute: targetentity: attributes inversedby: goodsandattribute joincolum: name: attribute_id referencedcolumnname: id lifecyclecallbacks: { }
在查询数据表的时候我发现只能得到其中一个关系的信息:
$query = $em ->createquery( 'select ga from appbundle:goodsandattribute ga where ga.id = 1');
在orm中如何关联多个表,实现相应信息的查询?例如
$query = $em ->createquery( 'select ga, g, a from applicationsonatamallbundle:goodsandattribute ga join ga.goods g join ga.attribute a where ga.id = 1');