2015-07-19 3 views
2

Я пытаюсь вычислить возраст пользователя с разницей даты с помощью QueryDSL.QueryDSL и date diff

QPlayer $ = QPlayer.player; 
BooleanBuilder builder = new BooleanBuilder(); 
builder.and(Expressions.dateOperation(Integer.class, Ops.DateTimeOps.DIFF_YEARS, Expressions.currentDate(), $.birthDate).between(3, 5)); 
playerRespository.findAll(builder); 

Но терпеть неудачу с этой ошибкой

Hibernate: select player0_.user_id as id1_31_, player0_1_.user_birthdate as user_bir2_31_, player0_1_.user_register_date as user_reg3_31_, player0_1_.user_delete_date as user_del4_31_, player0_1_.user_email as user_ema5_31_, player0_1_.user_first_name as user_fir6_31_, player0_1_.user_last_name as user_las7_31_, player0_1_.user_login as user_log8_31_, player0_1_.user_password as user_pas9_31_, player0_1_.user_status as user_st10_31_, player0_.player_description as player_d1_20_, player0_.player_height as player_h2_20_, player0_.player_picture as player_p3_20_, player0_.player_role as player_r4_20_, player0_.player_weight as player_w5_20_ from players player0_ inner join users player0_1_ on player0_.user_id=player0_1_.id where (diff_years(player0_1_.user_birthdate, current_date) between ? and ?) and (lower(player0_1_.user_first_name) like ? escape '!') 
2015-07-19 14:22:16,881 [main] ERROR: org.hibernate.engine.jdbc.spi.SqlExceptionHelper - FUNCTION xxx.diff_years does not exist 

Эта ошибка происходит с использованием как MYSQL базы данных или HSQL.

Что не так с этим кодом?

Благодаря

ответ

1

diff_years, к сожалению, пока не поддерживаются в Querydsl JPA

Смежные вопросы