请找到我使用过的代码。以下HQL查询失败,说明:
找不到命名参数 [模板 Id]
但是模板 Id 存在于我的模型类中。
请帮助解决问题或可能导致此类错误的原因:
session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
String hql ="from FieldTemplate where templateId= :id";
Query query = session.createQuery(hql);
query.setParameter("templateId", id);
List file=query.list();
tx.commit();
return (FieldTemplate) file.get(0);
模型文件
@Entity
@Table(name="EDW_FIELDS")
public class FieldTemplate {
@Id
@Column(name="ID")
@GeneratedValue(strategy=GenerationType.AUTO)
private int Id;
public int getId() {
return Id;
}
public void setId(int id) {
Id = id;
}
@Column(name="TEMPLATE_ID")
private int templateId;
public int getTemplateId() {
return templateId;
}
public void setTemplateId(int templateId) {
this.templateId = templateId;
}
@Column(name="FIELD_NAME")
private String fieldName;
public String getFieldName() {
return fieldName;
}
public void setFieldName(String fieldName) {
this.fieldName = fieldName;
}
@Column(name="DISPLAY_ORDER")
private int displayOrder;
public int getDisplayOrder() {
return displayOrder;
}
public void setDisplayOrder(int displayOrder) {
this.displayOrder = displayOrder;
}
}
请帮助解决我的问题
String hql ="from FieldTemplate where templateId= :id";
Query query = session.createQuery(hql);
query.setParameter("id", id);
在查询中。设置两个参数都应匹配
您的参数名是id
而不是templateId
。您必须更改为:
String hql ="from FieldTemplate where templateId= :id";
Query query = session.createQuery(hql);
query.setParameter("id", id);
:
后面的Name是参数名称,必须与setParameter()
的第一个参数匹配
如果它帮助某人,也删除任何;如果您的:p在查询的最后。
例如,您的查询必须是:
Select * from blah where param = :param
而不是
Select * from blah where param = :param;
(请注意结尾处的“;”
我的项目设置是Spring MVC,Hibernate 3.2.x,在 MySQL 数据库上 收到以下错误: org.hibernate.QueryParameterException:无法找到命名参数电子邮件 方法#1: 方法#2: 错误: java.lang.IllegalArgumentException:参数email不作为命名参数存在于[fromcom.cmgr.beans.UserAc
我有以下查询: 执行查询时,我得到以下异常: java.lang.非法参数异常: 组织.Hibernate.查询参数异常: 找不到命名参数 [startDate] 您能告诉我的查询有什么问题吗?
我有一个疑问 但是在使用hibernate执行查询时,我收到 org.hibernate.QueryParameterException:无法定位命名参数[age] 怎么了?
问题内容: 谁能指出我如何将order by子句作为命名参数传递给HQL? 有效的示例: 无效的示例: 问题答案: 不支持,只能在and 子句中使用输入参数,并且不能为子句使用参数。或者,如果我改写,您不能对列使用参数,只能对值使用。因此,要么: 有尽可能多的命名查询排序顺序 将排序字符串连接到查询字符串 使用条件查询
问题内容: 嗨,我有一个命名查询 我想这样设置限制: 但这在服务器启动时显示错误。我正在使用以下代码在DAO类中调用查询: 需要设置开始和结束参数。请帮忙。 问题答案: 正如@DataNucleus所说,LIMIT在JPQL中不是有效的关键字。这不是指定要返回多少行的方法。这是您的操作方式: 这将是调用命名查询的代码:
错误:运算符不存在:uuid=bytea 有什么建议吗?