题
我有用户表,并试图让今天谁拥有生日的人的名单,因此该应用可以发送电子邮件。
在用户被定义为
@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是不是一种选择,我会去一个本地查询。
不隶属于 StackOverflow