我需要优化一个遍历多个对象的查询,并且我希望Spring Data能够让数据库处理它。我想用一个HashMap<String,String>
,看起来像将整数转换为Spring数据中的字符串JPA查询
2134_9877, 9877
2134_2344, 2344
3298_9437, 9437
结束了SQL是select convert(varchar,b.id)+'_'+convert(varchar,a.id)',a.id from t1 a join t2 b on a.jc = b.jc
到目前为止,我已经得到了无论-QL中,看起来像仓库:
@Query("SELECT new map (a.bkey, a.akey) FROM mergeTable a WHERE a.discr= ?1")
问题是,bkey
不是唯一的,它只有在与akey
配对时才是唯一的,而且我必须提供它的怪物才能让它们与下划线组合:2345_2177
。
我试图a.bkey.toString
和''+a.bkey
和new String(a.bkey)
,只是string(a.bkey)
(即最后给出了一个新的异常,但仍然无法正常工作),但春节不喜欢任何这些。我可以找到没有问题的问题,看来我不能使用SQLServer的convert()函数,因为这不是SQL。
如何在这个@Query中将整数连接为带有下划线的字符串? PS:使用在SQLServer中调试过的本机查询会在Hibernate中引发一些奇怪的别名异常,所以我认为'本土化'被预先确定为死胡同。
不幸的是,CONCAT不可用,直到2012年的SQLServer然而,在链接你送我看到的是,虽然2 +“串”不行,“” + 2 +'串'确实有效。既然你链接到另一个问题产生了这个提示,并且int/string转换是我的特定问题,我将选择你的答案作为解决方案。谢谢。 _不幸的是,现在我收到了一个不同的错误,所以我会问一个新问题。 – user1944491