【发布时间】:2014-09-23 03:41:12
【问题描述】:
当我尝试在 hibernate 中使用命名查询显示表的少量内容时出现错误。我曾尝试寻找答案,但没有成功。代码如下。
<sql-query name="ActiveCustomers">
<return alias="cts" class="Customer"/>
SELECT
cts.cid AS {cts.cid},
cts.cname AS {cts.cname},
cts.email AS {cts.email},
cts.status {cts.status}
FROM Customers cts
WHERE cts.status=:st
</sql-query>
我从客户端调用它,如下所示:
SessionFactory sf=CHibernateUtil.getSessionFactory();
Session session=sf.openSession();
tx=session.beginTransaction();
list=session.getNamedQuery("ActiveCustomers").setString("st","Active").list();
for(Customer c:list){
System.out.println(c);
}
tx.commit();
session.close();
但我收到此错误:
休眠:
SELECT
cts.cid AS cid0_,
cts.cname AS cname0_0_,
cts.email AS email0_0_,
cts.status status0_0_
FROM Customers cts
WHERE cts.status=?
org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
.
.
Caused by: java.sql.SQLException: Column 'city0_0_' not found.
但是如果我添加表的所有列,那么它就可以工作。但这不是我的要求。我的要求是只显示 cid、cname、email 和状态。
【问题讨论】: