簡體   English   中英

在列上使用別名查詢會出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM