【问题标题】:JPA - get entity's by week number - Java EEJPA - 按周数获取实体 - Java EE
【发布时间】:2014-12-02 21:31:16
【问题描述】:

我有以下实体:

@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 **/
}

所以我使用 Temporal.DATE 类型作为 startDate 和 endDate。现在我想按年份和周数选择。做这个的最好方式是什么?我更喜欢 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();
}

提前致谢!

【问题讨论】:

  • 嘿,我现在也有类似的需求。你找到解决方案了吗?

标签: java jakarta-ee jpa calendar entity


【解决方案1】:

你可以这样创建一个日期:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 2013-03-30
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多