我正在编写以下代码以使用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();
}
有两条记录,但我得到两行的值。但我得到了两行的价值。请帮我看看我错过了什么。感谢
答案 0 :(得分:0)
我怀疑您已经映射了one-to-many
关联,并指定了fetch="select"
方法。使用它的Hibernate将检索每个相关记录的父对象。
Query query = session.createQuery("from ServiceManagerDetails")
.SetResultTransformer(CriteriaSpecification.DistinctRootEntity);
应该做的伎俩。