Mysql 创建使用LEN或LENGTH函数的常规hibernate查询
在我的一个数据库服务中,我创建了一个hibernate查询,如下所示:Mysql 创建使用LEN或LENGTH函数的常规hibernate查询,mysql,sql-server-2008,hibernate,Mysql,Sql Server 2008,Hibernate,在我的一个数据库服务中,我创建了一个hibernate查询,如下所示: createSQLQuery("SELECT * FROM documentheaders order by LEN(header) DESC").addEntity(Documentheaders.class); 只要我使用MS SQL,这就非常有效。如果我尝试用MYSQL运行这个查询,我会得到一个sql错误,因为在MYSQL中,正确的函数是LENGTH。有没有办法创建一个包含两种方言的单一sql查询(我知道我可以检查数
createSQLQuery("SELECT * FROM documentheaders order by LEN(header) DESC").addEntity(Documentheaders.class);
只要我使用MS SQL,这就非常有效。如果我尝试用MYSQL运行这个查询,我会得到一个sql错误,因为在MYSQL中,正确的函数是LENGTH。有没有办法创建一个包含两种方言的单一sql查询(我知道我可以检查数据库类型,并对每种数据库使用单独的查询,但我希望有更优雅的方式)
谢谢
Elliott感谢frictionlesspulley提醒我使用HQL函数。这解决了问题。HQL中有一个length()函数。您能否改进您的答案以包含完整的解决方案,并提供一个示例。这也将帮助其他人找到您的问题。