我在使用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,电子邮件和状态。
user2900314,我不是你做什么确切的变化o修复的问题,你说清楚',我们需要使用不同的标签叫什么不同的标签?你也在你的答案中提供了2'',其中1与你的问题相符。你能否提供更多关于你如何解决这个问题的细节? –
Chaitanya
2014-09-23 05:19:52
@Chaitanya编辑中出现了一些问题。我现在修复了它,现在查看它,并让我知道是否需要更多的说明。 第一个是我们有问题,第二个是纠正之一。 –
User27854
2014-09-23 10:45:52
谢谢,现在很清楚。 – Chaitanya 2014-09-23 11:32:24