2010-03-31 2 views
2

나는 사용자가있는 테이블을 가지고 있으며 생일을 맞은 사람들과 함께 목록을 얻으려고하므로 앱에서 이메일을 보낼 수 있습니다.오늘 오후에 JPA가 적용된 사용자 찾기

이용자는

@Entity 
public class User { 

    @Size(max = 30) 
    @NotNull 
    private String name; 

    [...] 
    @Temporal(TemporalType.DATE) 
    @DateTimeFormat(style = "S-") 
    protected Date birthday; 
} 

로 정의되고, 그래서

@SuppressWarnings("unchecked") 
public static List<User> findUsersWithBirthday() { 

List<User> users = 
    entityManager().createQuery("select u from User u where u.birthday = :date") 
    .setParameter("date", new Date(), TemporalType.DATE) 
    .getResultList(); 
    return users; 
} 

이 잘하고 있었다 사람을 찾는 모든처럼 오늘 태어난 사람들을 반환하는 방법이 있어요 오늘 태어 났지만, 그다지 유용하지는 않아서, 나는 올해 출생 한 모든 사용자를 찾는 방법으로 어려움을 겪고 있습니다.

는 MySQL을 사용하는 것은 내가 그에게 JPA 동등한를 찾기 위해 애 쓰고 있었어요 그러나 나는

select month(curdate()) as month, dayofmonth(curdate()) as day 

처럼 사용할 수있는 기능이있다.

나는 봄 3.0.1를 사용하고 내가 JPQL에 그렇게하는 방법을 모른다 3.3.2

답변

2

최대 절전 모드 만 실행할 수 있도록 HQL은 day()month() 기능을 가지고있어 :

from User u 
where day(u.birthday) = day(CURRENT_DATE) 
and month(u.birthday) = month(CURRENT_DATE) 

HQL을 사용할 수 없다면 네이티브 쿼리를 사용할 것입니다.

관련 문제