My Photo

« あんまり興味ないオリンピック開幕 | Main | ラッセが生きていた »

August 09, 2008

Hibernateメモ2

たとえば、マッピングファイルがこんな感じでPKが複合キーの場合、


<class name="Tbl1" table="TBL1">
<meta attribute="sync-DAO">true</meta>

<composite-id name="Id" class="Tbl1PK">
<key-property name="Id1" column="ID1"
type="big_decimal" />
<key-property name="Id2" column="ID2"
type="big_decimal" />
</composite-id>

<property name="Col1" column="COL1" type="big_decimal" not-null="true" length="9" />
<property name="Col2" column="COL2" type="string" not-null="false" length="12" />
<property name="Col3" column="COL3" type="date" not-null="true" length="7" />
</class>


クライテリアを使って複合キーの一部を条件としての検索はこんな感じ。


Criteria crit = getSession().createCriteria(Tb1.class);
crit.add(Restrictions.eq("Id.Id1", id1));
List result = crit.list();


HQLで副問い合わせ。ID2が指定した値で、COL3が指定時間より前でかつID1が最も大きいものを取得する。


FROM Tbl1 A
WHERE A.Id.Id1
= (SELECT MAX(B.Id.Id1)
FROM Tbl1 B
WHERE B.Id.Id2 = :id2
AND B. < :date)
AND A.Id.Id2 = :id2

DetachedCriteriaを使えばクライテリアでも出来るらしいが、よくわからん。

« あんまり興味ないオリンピック開幕 | Main | ラッセが生きていた »

「Java」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/42117871

Listed below are links to weblogs that reference Hibernateメモ2:

« あんまり興味ないオリンピック開幕 | Main | ラッセが生きていた »

March 2017
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof