J'ai une table avec les utilisateurs et j'essaie d'obtenir une liste avec les personnes qui ont un anniversaire aujourd'hui afin que l'application puisse envoyer un email.Trouver des utilisateurs dont l'anniversaire est aujourd'hui avec JPA
L'utilisateur est défini comme
@Entity
public class User {
@Size(max = 30)
@NotNull
private String name;
[...]
@Temporal(TemporalType.DATE)
@DateTimeFormat(style = "S-")
protected Date birthday;
}
et j'ai une méthode qui renvoie les gens qui sont nés aujourd'hui comme si
@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;
}
Ceci est bien et tout pour trouver des gens qui étaient né aujourd'hui, mais ce n'est pas vraiment utile, alors j'ai lutté pour trouver un moyen de trouver tous les utilisateurs qui sont nés aujourd'hui, indépendamment de l'année.
Utilisation de MySQL, il y a des fonctions que je peux utiliser comme
select month(curdate()) as month, dayofmonth(curdate()) as day
Cependant, j'ai du mal à trouver un JPA équivalent à celui.
J'utilise Spring 3.0.1 et Hibernate 3.3.2