MySqlQuery:
select count(holiday_id)
from holidays
where holiday_type_id=2 and DATEDIFF('2016-8-9',curdate())>=20
JavaQuery:
Query OptionalholidaysQuery =
manager.createNativeQuery("select count(holiday_id) from Parabola.holidays"
+ " where holiday_type_id=2 and DATEDIFF(:startdate,curdate())>=20");
OptionalholidaysQuery.setParameter("startdate", "2016-8-9");
List<Integer> optionalholidays = (List<Integer>) OptionalholidaysQuery.getResultList();
System.out.println("Optional:" + OptionalholidaysQuery);
给定的MySql查询工作正常,并在我通过workbench执行时返回数据。
我已经在Java代码中应用了它,但是它给了我结果
可选:org.hibernate.query.internal.NativeQueryImpl@220ab636
请指出错误并建议更正。
答案 0 :(得分:0)
您好像正在打印queryHolder而不是打印结果。如下所示更改您的代码
您的版本
List<Integer> optionalholidays = (List<Integer>) OptionalholidaysQuery.getResultList();
System.out.println("Optional:"+OptionalholidaysQuery);
像这样更新。
List<Integer> optionalholidays = (List<Integer>) OptionalholidaysQuery.getResultList();
for(final Integer optionalHoldiday : optionalHolidays){
System.out.println("Optional:"+optionalholiday );
}
这将一个接一个地打印您的可选假日。如果您对此有任何疑问,请与我们联系。