如何在hibernate中获取所有行值?

时间:2011-05-26 11:52:00

标签: hibernate

我正在编写以下代码以使用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();
}

有两条记录,但我得到两行的值。但我得到了两行的价值。请帮我看看我错过了什么。感谢

1 个答案:

答案 0 :(得分:0)

我怀疑您已经映射了one-to-many关联,并指定了fetch="select"方法。使用它的Hibernate将检索每个相关记录的父对象。

Query query = session.createQuery("from ServiceManagerDetails")
    .SetResultTransformer(CriteriaSpecification.DistinctRootEntity);

应该做的伎俩。