Критерии гибернации для группы By с пунктом where - PullRequest
0 голосов
/ 12 марта 2020

Я хочу использовать критерии гибернации для предложения group by с предложением where.

например, если у меня sql вот так:

"select max (id) от Employee, которым возраст > 25 group by trun c (create_date) "

Проблема в том, что у моего столбца созданного_дата также есть время, но я хочу использовать group by в день, когда он работает, исключая время.

Как можно Я передаю усеченную дату в режиме гибернации при использовании группы критериев BY.

1 Ответ

0 голосов
/ 12 марта 2020
    SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yy");
    String createDateInString = "26-FEB-20";

    try {

        Date createDate = formatter.parse(createDateInString);

    } catch (ParseException e) {
        e.printStackTrace();
    }
List result = session.createCriteria(Employee.class)       
                    .add(Restrictions.ge("age",new Integer(25))) 
        .add(Restrictions.eq("created_date", new java.sql.Timestamp(createDate.getTime())))
                    .setProjection(Projections.projectionList()
                            .add(Projections.groupProperty("id"))
                            .add(Projections.max("name"))
                    ).list();

Я думаю, что при сравнении даты будет вероятность ошибки. В противном случае groupBy можно выполнить с помощью Projection

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...