$
我正在尝试使用条令2查询生成器创建以下场景
SELECT
p . *
FROM
_tree p
LEFT JOIN
_tree c ON p.id = c.parent_id
AND (c.lft >= p.lft AND c.rgt <= p.rgt)
WHERE
p.id = 3
我设置了Doctrine2自行生成的以下关系
class Tree { /** * @var \Tree * * @ORM\ManyToOne(targetEntity="Tree") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="parent_id", referencedColumnName="id") * }) */ private $parent; // other code }
这是我的回购课
_em->createQueryBuilder(); $qb->select('p') ->from('Entity\Tree', 'p') ->leftJoin('p.Entity\Tree','c', 'ON','p.id = c.parent_id'); return $qb->getQuery()->getResult(); } }
但我没能完成。它抛出以下错误
[Tue Oct01 22:30:11 2013][错误][客户端127.0.0.1]PHP致命错误:未捕获异常'Doctrine\ORM\Query\QueryExc0019',消息'SELECT p from Entity\Tree p LEFT JOIN p.实体\Tree c ONp.id=c.parent_id'在 /var/www/pcb_frame_work/System/Libraries/Vendors/Doctrine/ORM/Query/QueryException.php:39\n堆栈跟踪:\n#0 /var/www/pcb_frame_work/System/Libraries/Vendors/Doctrine/ORM/Query/Parser.php(429):教义\ORM\Query\QueryExcema::dqlError('SELECT p from E...')\n#1 /var/www/pcb_frame_work/System/Libraries/Vendors/Doctrine/ORM/Query/Parser.php(925):教义\ORM\Query\Parser-
我不知道我是否完全理解您,但我认为您必须将您的多人关系更改为:
/**
* @var \Tree
*
* @ORM\ManyToOne(targetEntity="Tree", inversedBy="children")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
* })
*/
private $parent;
/**
* @ORM\OneToMany(targetEntity="Tree", mappedBy="parent")
*/
private $children;
这样,您可以使用$Tre-访问类的子类
有关自引用关联的更多信息,请参见:http://docs.doctrine-project.org/en/latest/reference/association-mapping.html#one-对许多自我参照的人来说
你能帮我解决这个问题吗?我想使用此方法在我的数据库中查找特定的缺口(它是由Apache Derby制作的)。我使用了EntityManager并从NetBeans中的数据库中映射持久性-实体类。 我得到这个错误: Java . lang . illegalargumentexception:在EntityManager中创建查询时出现异常:< br >异常描述:解析[SELECT * FROM U
问题内容: 我有一个非常简单的查询,像这样: 我的默认设置是或某些用户ID,但是由于某种原因,该查询总是返回0行,我也尝试过,但还是没有运气,这可能是什么错误? EDTI 因此,在运行更多查询后,我发现我的问题是字段的默认值,因此我修改了查询,现在可以正常使用: 问题答案: NULL值需要特殊处理:http : //dev.mysql.com/doc/refman/5.1/en/working-w
问题内容: 非常感谢你的帮助。我有一个和表。位置 我对位置模型执行以下查询。 然后,我要对其执行附加查询并根据以下内容对其进行过滤 该查询并 没有 工作。它返回一个空对象。 这是参数: location_params 1} permitted: true> ads_params 1} permitted: true> 不允许这样输入特定的列: 我有postgresql,我没有考虑过使用SQL,但是
我想让ElasticSearch在我的盒子上工作。我有以下映射: 所以我有一个“运动鞋”索引,它有一个“运动鞋”类型,一个“品牌”属性,它有一个“ID”和一个“标题”。 检查运动鞋是否存在,运行curl-xget“http://localhost:9200/sneakers/sneaker/1?prettley”,我得到: 现在,runningcurl-xget'http://localhost:
问题内容: 我正在使用嵌套集模型在iPhone上的本地SQLite数据库中存储较大的数据层次结构。我从他们的网站上阅读了MySQL技术文章,了解如何执行此操作,但是他们建议的查询(以及我需要的查询)之一似乎不适用于SQLite,并且我不确定如何解决它。 SQLite报告不是列,我认为这是因为其子查询实现不完整。有人对如何解决此限制有任何想法吗? 查询的目的是获取给定父节点的所有直接子代。 问题答案
在ZF2-PostgreSQL应用程序中,我想使用Doctrine2本机查询来构建分页器列表。 因此,如果选择了任何自定义的Doctrine/Pgsql类型,它都会非常有效。但对于一个查询,我将使用来自自定义类型的数据。 我在PostgreSQL中声明了一个名为的Doctrine 2自定义类型,如下所示: 这种类型在某些表中使用。表中的示例: ( 此类型链接到实体,以便: 在事件上进行条令类型注册