如何从中执行查询

时间:2016-07-19 09:01:12

标签: java hibernate jpa

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

请指出错误并建议更正。

1 个答案:

答案 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 );
}

这将一个接一个地打印您的可选假日。如果您对此有任何疑问,请与我们联系。