ユーザーのテーブルがあり、アプリが電子メールを送信できるように、今日誕生日の人のリストを取得しようとしています。
ユーザーは次のように定義されます
@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を使用すると、次のように使用できる関数があります
select month(curdate()) as month, dayofmonth(curdate()) as day
しかし、私はそれに相当するJPAを見つけるのに苦労しています。
Spring 3.0.1 と Hibernate 3.3.2 を使用しています