我从数据库中获取数据表中有6行,但它没有在程序中显示任何输出。可能是我的代码在下面的问题。 它在控制台中没有显示任何错误。
public class smsDAO {
Session session = HibernateUtil.getSessionFactory().openSession();
public List<SmsGateway> fetchAll() {
System.out.println("Calling fetchA b");
Transaction tx = session.beginTransaction();
List<SmsGateway> sms = null;
try {
sms = session.createQuery("FROM sms_gateway").list();
tx.commit();
for (SmsGateway s : sms) {
System.out.println(s.getDescription() + " " + s.getUrl1());
}
} catch (HibernateException e) {
if (tx != null) {
tx.rollback();
}
} finally {
session.close();
}
System.out.println("Calling fetchA re ");
return sms;
}
}
答案 0 :(得分:0)
控制台没有发现任何错误,因为您故意选择忽略抛出的异常。替换
catch (HibernateException e) {
if (tx != null) {
tx.rollback();
}
}
通过
catch (HibernateException e) {
e.printStackTrace();
if (tx != null) {
tx.rollback();
}
throw e;
}
并在文档中重新阅读有关HQL的章节。 HQL始终使用实体名称及其映射字段。它从不使用表名。所以查询应该是
select s from SmsGateway s
此外,尊重Java命名约定:类以大写字母开头。