现在我成功地创建了一个使用Doctrine函数createQueryBuilder从数据库中检索数据的函数.
有人知道是否有类似的功能来插入或更新数据库?或者我如何使用createQueryBuilder?
我有一个名为School的实体,它有一个ManyToMany关系"方法"
class School{
/**
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Column(type="integer")
*/
protected $id;
/**
* @ORM\ManyToMany(targetEntity="Method", inversedBy="schools")
* @ORM\JoinTable(name="lk_access_method")
* @ORM\OrderBy({"name" = "asc"})
*/
protected $methods;
}
Run Code Online (Sandbox Code Playgroud)
现在我想写一个createQueryBuilder由德计数"方法"订单
就像是:
$schools = $this->createQueryBuilder('s')
->select("s")
->orderBy("COUNT(s.methods)")
->addOrderBy("s.name")
->setMaxResults($count)
->setFirstResult($pos)
->getQuery()
->getResult();
Run Code Online (Sandbox Code Playgroud)
但那不起作用......任何人都有更好的主意吗?
嗨,我在phpmyadmin写了这个查询,它的工作原理是gr8.
SELECT u.* FROM users AS u WHERE
u.id = 14469 OR
u.id = 685
ORDER BY u.id, field(u.id, 14469, 685)
Run Code Online (Sandbox Code Playgroud)
但我需要在symfony2中编写它.看起来怎么样?因为这给我一个错误:
$query=$this->_em->createQuery("SELECT u FROM UserBundle:User u WHERE
u.id = 14469 OR
u.id = 685
ORDER BY u.id, field(u.id, 14469, 685)
");
Run Code Online (Sandbox Code Playgroud)
在渲染模板期间抛出异常("[语法错误]第0行,第122列:错误:字符串的预期结束,得到'('")
或者它不允许,我必须安装和使用一些学说扩展?
我收到了错误
java.lang.IllegalArgumentException:参数值[2]与org.hibernate.jpa.spi.BaseQueryImpl.validateBinding(BaseQueryImpl.java:885)中的预期类型[com.cityBike.app.model.User(n/a)]不匹配)在org.hibernate.jpa.spi的org.hibernate.jpa.internal.QueryImpl.access $ 000(QueryImpl.java:80)atg.hibernate.jpa.internal.QueryImpl $ ParameterRegistrationImpl.bindValue(QueryImpl.java:248) .baseQueryImpl.setParameter(BaseQueryImpl.java:631)org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:180)org.hibernate.jpa.spi.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:49)at atg.hibernate.jpa.spi.AbstractQueryImpl.setParameter com.cityBike.app.service.RentService.getAllByUser(RentService.java:22)
下面是我的代码片段,我该如何解决这个问题?
File Rent.java
@Entity
@Table(name="Rent")
public class Rent implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id")
private Integer id;
@ManyToOne
@JoinColumn(name = "start_id")
private Station start_id;
@ManyToOne
@JoinColumn(name = "meta_id")
private Station meta_id;
@ManyToOne
@JoinColumn(name = "user_id")
private User user_id;
...
Run Code Online (Sandbox Code Playgroud)
文件User.java
@Entity
@Table(name="Users")
public class User implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id")
private Integer id;
@Column(name = "login")
private String login;
...
Run Code Online (Sandbox Code Playgroud)
File RentService.java
@Service
public class RentService …Run Code Online (Sandbox Code Playgroud) createquery ×5
symfony ×3
doctrine-orm ×2
sql-order-by ×2
asp.net ×1
c# ×1
field ×1
hibernate ×1
java ×1
jpa ×1