我需要優化一個遍歷多個對象的查詢,並且我希望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