如何获取休眠中的所有行值?

问题描述

| 我正在编写以下代码,以使用Hibernate从数据库获取
try {
    System.out.println(\"In getDetails() try block\");
    configuration = new Configuration();
    configuration.configure(\"resources\\\\hibernate.cfg.xml\");

    sessionFactory = cfg.buildSessionFactory();
    session = sessionFactory.openSession();

    Query query = session.createquery(\"from ServiceManagerDetails\");

    List l = query.list();
    Iterator i1 = l.iterator();

    ServiceManagerDetails smd = null;
    while (i1.hasNext()) {
        smd = (ServiceManagerDetails)i1.next();
        System.out.println(smd.getServiceMode());
    }                
} catch (Exception e) {
    System.out.println(\"Error:- \"+e);
    //tx.rollback();
    e.printstacktrace();
} finally {
    session.close();
}
有两条记录,但是我两次获得一行的值。但是我得到了这两行的价值。请帮助我找出我所缺少的。谢谢     

解决方法

我怀疑您已映射
one-to-many
关联,并且已指定
fetch=\"select\"
方法。休眠后将为每个关联的记录检索父对象。
Query query = session.createQuery(\"from ServiceManagerDetails\")
    .SetResultTransformer(CriteriaSpecification.DistinctRootEntity);
应该做到的。