【发布时间】:2015-01-19 16:56:55
【问题描述】:
public List<Series> findSeries(int period, String fieldname, int num) {
TypedQuery<Series> query = em.createQuery(
"select s from Series s where s.period = ?1 order by ?2",
Series.class);
query.setParameter(1, period);
query.setParameter(2, fieldname);
query.setMaxResults(num);
return query.getResultList();
}
这是我正在使用的方法。我认为 order by 甚至没有被执行,即使我传递了不正确的字段名,它也不会给出任何错误。
【问题讨论】:
-
您是否尝试过直接在
order by中输入列名,而不是将其作为参数传递?我认为问题是,您的变量fieldName是字符串类型。类型化查询将其作为字符串文字而不是列名。select s from series where s.period = ?1 order by "filedName"。这就是为什么我认为它不起作用。
标签: spring-data