0
我有一个通过DAO执行查询N次的循环。在我的情况下,我有一个属性值为“123456789”的对象。在第一个回合中,它对特定的表执行查询,以获得列C1
等于“123456789”的所有记录。SQL最长前缀字符串
在第二回合中,它会在同一张表上执行一个查询,以获得所有列C1
等于“12345678”的记录。依此类推,直到找到具有最长前缀的记录。
我认为,而不是多次执行此查询,为什么不执行另一个查询只有一次,它需要作为参数字符串“123456789”并返回具有列C1
这是最长的前缀“123456789 ”。但我不知道如何用Hibernate来做到这一点(如果可能的话),或者如果你有另一种解决方案。我正在使用MySQL。
(我看了这个post但我想知道是否有办法做到这一点与Hibernate)
感谢您的答案,它的工作原理!但是,我有两个问题:首先,使用concat()和||之间有什么区别?另外,这个HQL语句是否可以在不同的DBMS之间移植? –
据我所知,||是休眠状态,这意味着将被转换到每个数据库与他们自己的功能。 concat将通过并将用于特定数据库。 –