我有一个用于返回动态查询的方法。此方法如下所示
public Query getLastId(String sProvider)
{
String serviceProvider = sProvider.toLowerCase();
String query2 = "SELECT MAX(:serviceProvider.id) " +
" FROM :sProvider :serviceProvider ";
return em.createQuery(query2)
.setParameter("sProvider", sProvider)
.setParameter("serviceProvider", serviceProvider);
}
我希望此方法返回此
SELECT MAX(multichoice.id) FROM Multichoice multichoice
当我调用这样的方法时
getLastId("Multichoice");
请问如何编写查询变量以返回答案?
答案 0 :(得分:1)
要执行此任务,您可以使用Criteria对象模型和投影在不同类型上运行查询: 看看这个article(15.7。预测,聚合和分组)
这是代码:
List results = session.createCriteria(class)
.setProjection( Projections.max("id"))
.list();
然后你应该向你的方法发送一个类而不是字符串。