[英]UCanAccess “object not found” error for query that references its own column alias
[英]Query using alias on column give an error
當我為列使用別名時,出現錯誤。 如果沒有別名,everytinig 效果很好。 那有什么問題? 這是一個簡單的例子,但在實際項目中需要使用更多的別名將結果包裝在一些非實體類中,但因為這個錯誤而不能。 如何解決這個問題?
不工作(在 id 列上有別名):
public List<Long> findAll(Long ownerId) {
String sql = "select id as myId from products where ownerId = "+ownerId;
SQLQuery query = getSession().createSQLQuery(sql);
return query.list();
}
錯誤:
警告 [JDBCExceptionReporter:77]:SQL 錯誤:0,SQLState:S0022 錯誤 [JDBCExceptionReporter:78]:未找到列“id”。
工作(無別名):
public List<Long> findAll(Long ownerId) {
String sql = "select id from products where ownerId = "+ownerId;
SQLQuery query = getSession().createSQLQuery(sql);
return query.list();
}
如果您的“產品”被映射,hibernate 可能不知道“myId”,因此無法選擇它。 您可以嘗試以下操作:
getSession().createSQLQuery(sql).addScalar("myId", Hibernate.LONG)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.