【发布时间】:2016-02-06 21:29:08
【问题描述】:
我正在尝试使用 @Query 注释在 Spring Data JPA 存储库中对 SQLServer 进行简单查询,以创建本机查询。 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 - 我在问题中添加了代码,虽然它主要是一个魔法咒语......不幸的是,由于查询是
native=true,我不能以select new map (...开头我会在 JPQL 做。但是,该错误并不像 SQL 解析问题那样表明类型/签名问题。
标签: java sql-server hibernate spring-data-jpa