【发布时间】:2016-02-05 15:51:27
【问题描述】:
我需要优化一个遍历多个对象的查询,我希望 Spring Data 让数据库来处理它。我想最终得到一个看起来像的HashMap<String,String>
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
到目前为止,我的存储库中的 What-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) (最后一个新的例外但仍然不起作用)但Spring 不喜欢这些。我找不到任何问题,而且似乎我不能使用 SQLServer 的 convert() 函数,因为这不是 SQL。
如何在此@Query 中将整数作为字符串与下划线连接?
PS:使用已在 SQLServer 中调试的本机查询会在 Hibernate 中引发一些奇怪的别名异常,因此我认为“进入本机”已被预先确定为死胡同。
【问题讨论】:
标签: java hibernate spring-data-jpa jpql