简体   繁体   English

动态Hibernate查询

[英]Dynamic Hibernate Query

I have a method that I use to return a dynamic query.我有一个用于返回动态查询的方法。 This method is shown below该方法如下图所示


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);

}

I want this method to return this我希望这个方法返回这个

SELECT MAX(multichoice.id) FROM Multichoice multichoice

when I call the method like this当我这样调用方法时

getLastId("Multichoice");

Please how do I write the query variable to return the answer?请问如何编写查询变量来返回答案?

To do this task you can use Criteria object model and projections to run your query over different types: Take a look at this article (15.7. Projections, aggregation and grouping)要执行此任务,您可以使用 Criteria object model 和投影在不同类型上运行查询:看看这篇文章(15.7. 投影、聚合和分组)

here is the code:这是代码:

List results = session.createCriteria(class)
.setProjection( Projections.max("id"))
.list();

Then instead of a string you should send a class to your method.然后,您应该向您的方法发送 class 而不是字符串。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM