草庐IT

Doctrine_Query

全部标签

php - Doctrine 2 动态查询

我正在尝试使用Doctrine进行动态搜索查询。而且它不起作用$em=$this->getDoctrine()->getEntityManager();$city='newyork';$minprice=500;$maxprice=1000;$testquery="SELECTpFROMAcmeTestBundle:CarpWHEREp.city=:city";$testparam=array('city'=>$city,);if($minprice!=''){if($maxprice!=''){$testquery.="andp.priceBETWEEN:minpriceAND:ma

php - Doctrine2 原生查询多对多

我已阅读有关nativesql查询的Doctrine2文档。它不讨论由ManyToMany关系连接的实体。我不知道如何处理,任何想法或例子。 最佳答案 您只需手动将连接表添加到sql中即可。扩展Doctrine手册第14章中的示例:$rsm=newResultSetMapping;$rsm->addEntityResult('User','u');$rsm->addFieldResult('u','id','id');$rsm->addFieldResult('u','name','name');$rsm->addJoinedEnt

mysql - SQL : How to make a concant query independent of the DB

我需要在SQL语句中连接两个字段,并且我在使用JDBC的Java应用程序中对MySQL和SQLite使用相同的语句。事实证明,MySQL和SQLite都有不同且不兼容的连接运算符:MySQL使用“CONCAT(smth,smth)”SQLite使用“smth||smth”。到目前为止,我已经设法对两个数据库使用相同的句子,所以现在我需要一种方法来找到独立于MySQL和SQLite的concat运算符;或者在我的Java应用程序中动态检测该句子是否将在MySQL或SQLite中执行。我也可以在我的java方法中添加一个参数,该方法包含SQL查询,以了解我使用的是MySQL还是SQLite

php - 制定复杂的 Doctrine2 DQL 查询

鉴于我有一个包含许多AttendancePerson的Event($event)实例,我需要获取属于$event的所有AttendancePerson对象,其中AttendancePerson.person参加了多个具有匹配$event的calendar_id的事件->calendar_id以及AttendancePerson.event.dateTo在前一年结束的位置。架构减去不相关的列名:event_attendance_person-id-event_id-person_idevent-id-calendar_id-dateToperson-idevent_calendar-id

MySQL Connector/J v5.x 升级 : query now returning byte[] instead of String

我刚刚为我的应用程序更新了JDBC驱动程序mysql-connector-java-3.1.12-bin.jar到mysql-connector-java-5.1.34-bin.jar.使用v3.x驱动程序,这种查询有效:selectconcat("",count(sakila.payment.payment_id),"")fromsakila.payment;但现在使用新的v5.x驱动程序,查询仅适用于cast()。selectcast(concat("",count(sakila.payment.payment_id),"")aschar(30))fromsakila.paymen

php - Doctrine 2 : Cannot select entity through identification variables without choosing at least one root entity alias

我被一个原本非常简单的doctrine2查询所困。我有一个名为Category的实体,它与自身具有OneToMany关系(对于父类别和子类别)。/***@ORM\ManyToOne(targetEntity="Category",inversedBy="children")*/private$parent;/***@ORM\OneToMany(targetEntity="Category",mappedBy="parent")*/private$children;下面的查询$q=$this->createQueryBuilder('c')->leftJoin('c.children',

php - 如何使用 Doctrine QueryBuilder 选择所有列?

我有实体Store、Owner和Town,我想计算所有商店所有者有,按他们的城镇分类。我的Controller中有这个查询$query=$this->getDoctrine()->getRepository('WebBundle:Store')->createQueryBuilder('s')->select('t.name,COUNT(s)ascounter')->groupBy('s.town')->leftJoin('s.owner','o')->leftJoin('s.town','t')->where('s.owner=:id')->orderBy('t.name','ASC

sql - Compojure + clojure.contrib.sql : SELECT query is being cached. 为什么?

我正在编写一个CompojureTODO应用程序,并将MySQL作为主要数据存储。我正在使用clojure.contrib.sql与MySQL交互,如下所示:(defdb{:classname"com.mysql.jdbc.Driver":subprotocol"mysql":subname"//localhost:3306/todo":user"":password""})我使用的查询似乎有效,但结果似乎已缓存。比如运行后(with-connectiondb(insert-values:todos[:name][name]))该值已成功插入数据库。然而,(defnsql-query[

php - 使用 Doctrine 构建通用的 OO ACL

我希望设计一个供我自己使用的基于Doctrine的ACL系统,尽管我在一些初始设计考虑因素上遇到了困难。现在我正在考虑基于类和唯一标识符制作它,将它们存储在这样的表中:Table:ACLResourceClassResourceKeyRoleClassRoleKeyPermission显然,这将要求我对正在查询的类进行内省(introspection)以派生出正确的ResourceClass值。我想知道这种方法以前是否有人做过,或者是否有人对以更好的方式做这件事有一些建议。角色之间的递归关系等其他事情也让我感到困惑,因为我不确定如何递归查询为资源构建和ACL。我不是ZendACL的su

php - Doctrine 迁移回退

我们正在使用条令迁移,当迁移包含多个操作并且其中一个操作失败时,经常会出现问题。例如,如果迁移添加了5个外键,而其中第5个外键失败,而字段的长度不相同,修复字段错误并重新生成迁移不会修复整个事情,虽然现在有一个错误与事实4个key已经存在并且不允许迁移成功运行有关。是否有一种稳定的方法来使用Doctrine迁移而不会出现上述明显的问题?我们以前使用过.sql文件,实际上并没有好多少,但我很确定对于使用Doctrine的数据库有正确的数据库版本控制方式项目?根据模型和架构之间的差异生成迁移非常好,我想进一步保留这种可能性。谢谢 最佳答案