开发者

Query using alias on column give an error

开发者 https://www.devze.com 2023-03-29 00:06 出处:网络
When i use alias for column i get error. Without alias everytinig works good. What is the problem with that ? This is simple example, but need to use more aliases in real project to wrap results in so

When i use alias for column i get error. Without alias everytinig works good. What is the problem with that ? This is simple example, but need to use more aliases in real project to wrap results in some not-entity class, but can't because of this error. How to solve this ?

NOT WORKING (with alias on id column):

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();
}

Error:

WARN [JDBCExceptionReporter:77] : SQL Error: 0, SQLState: S0022 ERROR [JDB开发者_如何学编程CExceptionReporter:78] : Column 'id' not found.

WORKING (without alias):

public List<Long> findAll(Long ownerId) {
    String sql = "select id from products where ownerId = "+ownerId;
    SQLQuery query = getSession().createSQLQuery(sql);
    return query.list();
}


If your "product" is mapped, hibernate probably don't know about "myId" and therefore can't select it. You can try something like:

getSession().createSQLQuery(sql).addScalar("myId", Hibernate.LONG)
0

精彩评论

暂无评论...
验证码 换一张
取 消