我试图在Spring存储库中对SQLServer执行一个简单的查询,使用@Query注释来创建本机查询。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 = ?由于每个实际字段都被别名为实际表,而且抱怨的是一个重复的空别名,所以我假设它不喜欢100?如果没有,有什么方法可以预测它被窒息了吗?参数的解析与rollback语句之间没有日志线。
编辑:这是存储库上下文中的查询
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);
}发布于 2015-12-30 21:27:18
我相信这个错误:遇到了重复的sql别名[]
是由于select语句中有多个列是非表列名称造成的。给这些列中的每一列都提供别名应该有效。换句话说,像这样的东西应该能起作用:
select
convert(varchar,((a.achan - a.freq) / 100)) +'_'+
convert(varchar,((a.bchan - a.freq) / 100)) COLUMN_ONE
, convert(varchar,((a.bchan - a.freq) / 100)) COLUMN_TWO
from channel_src as a
where a.discriminator = ?https://stackoverflow.com/questions/33554851
复制相似问题