弄来弄去,查询的时候提交一下事务就OK了。呵呵 public List<Financial> findByStockId(int stockId){ log.debug("finding financial instance with" + " stockId: value: " + stockId); try { String queryString = "select {s.*} from financial s where s.stock_id ="+stockId+" and s.state=0 order by s.financial_year asc"; Transaction tran = getSession().beginTransaction(); List r = getSession().createSQLQuery(queryString).addEntity("s", Financial.class).list(); tran.commit(); return r; } catch (RuntimeException re) { log.error("find by property name failed", re); throw re; } }