我实现了一个hibernate查询,并希望将结果分配给我的一个类变量。
问题是hibernate查询的结果似乎是对象或其他东西,因为结果的syso看起来很奇怪:
[exercise.java.basics.storage.WarehouseProduct@77f6d2e3]
这是执行查询的方法:
public void updateStock() {
Session session = getSessionFactory().getCurrentSession();
Criteria criteriaNail = session.createCriteria( WarehouseProduct.class );
criteriaNail.add( Restrictions.like( "productName", String.valueOf( Product.NAIL ) ) );
List nailCountResult = criteriaNail.list();
System.out.println( nailCountResult.toString() );
}
数据库只有2个列,我需要的值在第二个列中。 我想做的是这样的事情:
this.nailCount = nailCountResult.[XYZ --> Get the value from the second column];
这样的事情可能吗?如何将这些结果对象转换为可读的东西?
最好的问候 daZza答案 0 :(得分:3)
首先,我建议将行更改为
List<WarehouseProduct> nailCountResult = criteriaNail.list();
现在它不是ResultSet,它是WarehouseProduct
对象的列表。
您可以使用索引访问每个对象。
您可以遍历结果列表并将其视为
for( WarehouseProduct wp : nailCountResult ) {
System.out.println( wp.nailCount);
}
作为旁注,你在打破封装。请看一下。
答案 1 :(得分:0)
你需要的就是这个
String value=nailCountResult.get(0).getXXXX();