0

Hibernate を使用して、特定の月と年からレコードを抽出する必要があります。

私のコード:

if (!Converter.isStringNullOrEmpty(month ) && !Converter.isStringNullOrEmpty(year) ) {
    restrictionAnno = Restrictions.eq("year(dtControllo)",month );
    restrictionMese = Restrictions.eq("month(dtControllo)",year);
}

これにより、Hibernate 例外が生成されます。

could not resolve property: month(dtControllo) of: it.iet.ortles.hbean.TableauPresenza

このエラーを解決するにはどうすればよいですか?

4

2 に答える 2

0

私が言及したい2つのことがあります:

最初: 年と月の変数が交差する必要があります

restrictionAnno = Restrictions.eq("year(dtControllo)",year);
restrictionMese = Restrictions.eq("month(dtControllo)",month);

2 番目: 間にあるレコードをキャッチするために「lt」および「gt」メソッドを試すことができます。

restrictionAnno = Restrictions.lt(field, monthEndDate);
restrictionMese = Restrictions.gt(field, monthStartDate);
于 2013-02-20T16:04:09.367 に答える
0

過去にこの問題に対処した 1 つの方法は、データベースにビューを作成することで、休止状態をすべて一緒に取り除くことです。したがって、EventEVENT_ID, START_DATE,を含むテーブルがあるNAME場合、RDBMS を使用して、 から月と年を取得するビューを作成しますSTART_DATE

ビューは次のようになります。

V_EVENT

EVENT_ID、START_DATE、NAME、START_MONTH、START_YEAR

このビューを取得したら、エンティティを作成し、ビューSTART_YEARとの 2 つの追加の列を使用するクエリを実行できますSTART_MONTH。これにより、Hibernate/ORM で where 句ステートメントを簡単に作成できます。

于 2012-12-04T10:32:22.573 に答える