簡體   English   中英

是否有可能覆蓋getter?

[英]Is it possible to override getter?

這是我正在努力解決的問題(對於Java和Hibernate來說是相當新的問題,因此答案可能很明顯,但我真的無法弄清楚):

我有一個帶有非唯一ID列的表。 成對的表行看起來像這樣:

ID|NAME|CODE|START_DATE|END_DATE
--------------------------------
1 |name|1234|1900-01-02|2013-01-01
--------------------------------
1 |name|1234|2013-01-01|4999-01-01
--------------------------------
2 |name1|123|1900-01-02|2013-01-01
--------------------------------
2 |name1|123|2013-01-01|4999-01-01
--------------------------------

每對行中的兩行之間唯一不同的是時間段( START_DATEEND_DATE

有什么方法可以覆蓋getter,僅獲取行的ID ,其中START_DATE2013-01-01

在休眠狀態下,大多數人建議創建一個域訪問對象(DAO)以執行專門的查詢,並在控制器將調用的服務層之上放置一個服務層。

我不確定您是直接在哪個版本上使用hibernate或JPA,否則我可能會嘗試提供代碼解決方案。 盡管在大多數情況下,一對多關系實際上確實需要在Spring和Hibernate中調用它們自己的DAO方法。

編輯:嘗試這樣,然后為JPA 2

public List<Row> findByStartDate(Date date) {
    CriteriaBuilder cb = entityManager.getCriteriaBuilder();
    CriteriaQuery<Row> criteria = cb.createQuery(Row.class);
    Root<Row> r = criteria.from(Row.class);
    Predicate dateEquals = cb.equal(r.get("startDate"), date);
    criteria.select(r).where(dateEquals);
    return entityManager.createQuery(criteria).getResultList();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM