當我使用別名列的時候出現錯誤。沒有別名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();
}
錯誤:
WARN [JDBCExceptionReporter:77] : SQL Error: 0, SQLState: S0022 ERROR [JDBCExceptionReporter:78] : Column 'id' not found.
WORKING(沒有別名):
public List<Long> findAll(Long ownerId) {
String sql = "select id from products where ownerId = "+ownerId;
SQLQuery query = getSession().createSQLQuery(sql);
return query.list();
}
你真的串聯一個參數嗎? 「SQL注入」 – gbn
@gbn - 在這種情況下除了'Long'還能注入什麼? ;) - 但是,在進行普通的SQL查詢時總是考慮一下仍然不錯。 – Thomas
@Thomas:它顯示OP不知道SQL注入。如果字符串值安全處理,則顯示不一致。龍以後什麼變成了絃樂? – gbn