//数据库表hi_partyitems 映射Hibernian成HiPartyitems String hql="from HiPartyitems";
String sql ="select * from HiPartyitems"; 1. Session session = HibernateFactory.getSession();
2. Transaction tx = session.beginTransaction();
3. //Query query = session.createQuery(hql);
4. SQLQuery query =session.createSQLQuery(this.pSql);
5. tx.begin();
6. List list = query.list();
7. try {
8. count = list.size();
} catch (HibernateException ex) {
ex.printStackTrace(); } finally {
HibernateUtil.closeSession();
}建立一个SQLQuery 执行到第6行就不走了,也没异常,但是用第3行的就行,屏蔽掉第4行就行,为什么呢?难道是我的sql写错了?如果大家都不懂,就把“select p.* m.city from party p inner join message m on party.itemid=message.itemid where City='上海'” 变成hql好了,我就不用改成SQLQuery了。
String sql ="select * from HiPartyitems"; 1. Session session = HibernateFactory.getSession();
2. Transaction tx = session.beginTransaction();
3. //Query query = session.createQuery(hql);
4. SQLQuery query =session.createSQLQuery(this.pSql);
5. tx.begin();
6. List list = query.list();
7. try {
8. count = list.size();
} catch (HibernateException ex) {
ex.printStackTrace(); } finally {
HibernateUtil.closeSession();
}建立一个SQLQuery 执行到第6行就不走了,也没异常,但是用第3行的就行,屏蔽掉第4行就行,为什么呢?难道是我的sql写错了?如果大家都不懂,就把“select p.* m.city from party p inner join message m on party.itemid=message.itemid where City='上海'” 变成hql好了,我就不用改成SQLQuery了。
事务tx没关闭吧!加句tx.commit();试试
String sql ="select * from HiPartyitems";
是表名吗?不是吧。是类名。
所以,把类名HiPartyitems改为表名hi_partyitems 查询可以不用事务。可以把事务的语句全去掉。
tx.begin();
没有。去掉。
HQL是面向对象的数据库操作语言,做的操作有多步又要保证数据同步的时候才会采用事务,而像你这种单表查询是没有必要用的.