我有用户表,并试图让今天谁拥有生日的人的名单,因此该应用可以发送电子邮件。

在用户被定义为

@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;
}

这是很好,今天就讲到这里找到其出生的人,然而,THA是不是真的那么有用,所以我一直在挣扎了办法,找出所有被今天出生的独立一年的用户。

使用MySQL有功能我可以使用像

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

不过,我一直在努力寻找一种JPA相当于

我使用弹簧3.0.1和3.3.2休眠

有帮助吗?

解决方案

我不知道该怎么做,在JPQL但HQL具有day()month()功能,所以你可以运行:

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

如果使用HQL是不是一种选择,我会去一个本地查询。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top