我对学说2很新。我想通过实例进行查询 - 就像在Hibernate中一样。基本上,您将部分填充的权利对象作为查询参数,ORM返回所有匹配的对象。更多信息:http://java.dzone.com/articles/hibernate-query-example-qbe
有这样的功能吗?我所发现的就是能够将包含id字段的实体作为参数,但其他字段呢?
答案 0 :(得分:0)
您可以通过多种方式查询,而不仅仅是基于ID。
如果你需要根据first_name&获取学说对象。 last_name,你可以这样做。
$em = $this->getDoctrine()->getManager();
$em->getRepository('ACMETestBundle:Person')->findBy(array('first_name' => 'david', 'last_name' => 'john'));
如果您需要根据相同的名字和姓氏找到一个结果,它将是这样的。
$em = $this->getDoctrine()->getManager();
$em->getRepository('ACMETestBundle:Person')->findOneBy(array('first_name' => 'david', 'last_name' => 'john'));
如果您需要查询并获取数组。您可以使用以下选项。
$em = $this->getDoctrine()->getManager();
$result = $em->createQueryBuilder();
$contacts = $result->select('p')
->from('ACMETestBundle:Person', 'p')
->where('p.first_name = :fName')
->andWhere('p.last_name = :lName')
->setParameter('fname', 'david')
->setParameter('lname', 'john')
->getQuery()
->getResult(\Doctrine\ORM\Query::HYDRATE_ARRAY);
所以基本上有许多方法/选项可以循环查询,而不仅仅是限制为id。
希望这会对你有所帮助。
干杯!