Я пытаюсь сделать простой запрос к SQLServer в репозитории JPA Spring Data, используя аннотацию @Query для создания собственного запроса. 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-е? Если нет, есть ли способ объяснить, что он задыхается? Между разрешением параметра и оператором отката нет строки журнала.
Edit: Вот запрос в контексте хранилища
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