学说ORM关联映射与两列



我想从多个实体到一个实体进行一对多关联。

Entity_1、Entity_2、Entity_3 Entity_...所有人都应该有一对多Entity_A。

但这在教义中是不可能的:

  • 具有非主键的连接列
  • 将多个表映射到一个表实体

有解决方法吗?最好的方法是什么?

你需要 ManyToOne//OneToMany

但是需要主键 如果没有,则需要使用联接构建自定义查询

    manyToOne:
        nameforthepoint:
            targetEntity: EntityDestinyName
            cascade: {  }
            fetch: LAZY
            mappedBy: null
            inversedBy: null (depends bidirectional)
            joinColumns:
                name_of_the_origin_column:
                    referencedPropertyEntityName: name_of_the_destiny_column
            orphanRemoval: false

如果您不通过主键关联(例如 Symfony&Doctrine 查询与 join(:

        $em = $this->getEntityManager();
        $db = $em->getConnection();
        $query = "SELECT * FROM  table as p1
            INNER JOIN table2 AS p2 ON p2.column = p1.column";
        $stmt   = $db->prepare($query);
        $params = array();
        $stmt->execute($params);
        $resultset = $stmt->fetchAll();

希望对您有所帮助,如果您需要其他信息,请询问/评论。

最新更新