我想从多个实体到一个实体进行一对多关联。
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();
希望对您有所帮助,如果您需要其他信息,请询问/评论。