我有以下实体:
@Entity
@Table(name = "foo")
public class Foo {
@GeneratedValue
@Id
private int id;
@Temporal(TemporalType.DATE)
private Date startDate;
@Temporal(TemporalType.DATE)
private Date endDate;
/** getters and setters **/
}
所以我对startDate和endDate使用Temporal.DATE类型。现在我想按年份和周数来选择。做这个的最好方式是什么?我更喜欢JPQL查询。
例如
@Stateless
public class FooBean {
@Inject
@MainDB
EntityManager em;
public List<Foo> getFoos(int weekNumber, int year) {
TypedQuery<Foo> foos = em.createQuery("...", Foo.class);
return foos.getResultList();
}
提前致谢!
答案 0 :(得分:3)
你可以像这样创建一个日期:
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.WEEK_OF_YEAR, week);
calendar.set(Calendar.YEAR, year);
Date date = calendar.getTime();//first day of week
然后使用
之类的查询:date BETWEEN f.startDate AND f.endDate