问题:如何从hibernate查询时返回List类型结果中取值
问题描述:希望从数据库中查询一条数据并获取各字段值。但是hibernate自动生成的代码UserDAO.java文件中查询后返回的是一个List类型,我怎么也取不出这里面的字段值。
使用Eclipse导入hibernate并生成的UserDAO.java文件部分代码如下:
??? public List findByProperty(String propertyName, Object value) {
????? log.debug("finding Users instance with property: " + propertyName
??????????? + ", value: " + value);
????? try {
???????? String queryString = "from Users as model where model."
???????? ??????+ propertyName + "= ?";
???????? Query queryObject = getSession().createQuery(queryString);
?? queryObject.setParameter(0, value);
?? return queryObject.list();
????? } catch (RuntimeException re) {
???????? log.error("find by property name failed", re);
???????? throw re;
????? }
?}
?public List findByUsername(Object username) {
??return findByProperty(USERNAME, username);
?}
然后在测试时的代码如下:
??UsersDAO user = new UsersDAO();
??List li = user.findByUsername("txldat");
??Iterator it = li.iterator();
??while(it.hasNext()){
???System.out.println(it.next());
??}
但是打印结果却显示为:cn.edu.whu.xsjz.txl.vo.Users@18041e0
请问是什么原因啊,我应该怎么做才能够取出像id,name等字段的值呢?
for(int i=0;i<li.size();i++){ User user = (User)li.get(i); System.out.println("id "+user.getId()); System.out.println("name "+user.getName());}