mar*_*osh 5 java sql hibernate
当我为列使用别名时我得到错误.没有别名,每个人都很好.有什么问题?这是一个简单的示例,但需要在实际项目中使用更多别名来将结果包装在某些非实体类中,但由于此错误而无法使用.怎么解决这个?
不工作(在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();
}
Run Code Online (Sandbox Code Playgroud)
错误:
WARN [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();
}
Run Code Online (Sandbox Code Playgroud)
如果您的"产品"已映射,则hibernate可能不知道"myId",因此无法选择它.您可以尝试以下方式:
getSession().createSQLQuery(sql).addScalar("myId", Hibernate.LONG)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6602 次 |
| 最近记录: |