我正在嘗試使用@Query註釋創建本機查詢來對Spring Data JPA存儲庫中的SQLServer執行簡單查詢。 Hibernate正在掌握它,似乎無法解析常量(我認爲)。如何在Hibernate本機查詢中使用常量?
的錯誤是:org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [] during auto-discovery of a native-sql query
查詢是:
select convert(varchar,((a.achan - a.freq)/100))
+'_'+
convert(varchar,((a.bchan - a.freq)/100))
, convert(varchar,((a.bchan - a.freq)/100))
from channel_src as a
where a.discriminator = ?
由於每個實際的現場化名爲實際的表,而投訴是關於一個重複NULL別名,我假設它不喜歡100年代?如果沒有,有什麼辦法來預測它窒息的原因嗎?在參數的分辨率和回滾語句之間沒有日誌行。
編輯: 這裏是在倉庫中的情況下查詢
public interface ChannelMatrixRepository extends JpaRepository<ChannelMatrix,Integer>
{
@Query(value = "select convert(varchar,((a.achan - a.freq)/100)) +'_'+ convert(varchar,((a.bchan - a.freq)/100)) , convert(varchar,((a.bchan - a.freq)/100)) from channel_src as a where a.discriminator = ?1", nativeQuery = true)
Map<String, String> findAllBySquelchLevel(int sk);
}
你可以在創建查詢對象時添加一些代碼嗎? – Jamie
@Jamie - 我在代碼中添加了這個問題,雖然它大部分只是一個魔法咒語......不幸的是,由於查詢是'native = true',我不能用'select new map(...'我在JPQL中會這樣做,但是,這個錯誤並沒有像SQL解析問題那樣指出類型/簽名問題 – user1944491