ソフトウェア技術TweetJPAのバージョンは2.1と前バージョンから0.1しか上がっていないが、非常にいいものが追加されている。2.1の目玉機能としてはストアド呼び出しが可能になったとかあるのだろうが、基本ストアド使いたくないのでおいらは無視する。地味・・・ではなくド派手なのにあまり語られない新機能もある。きた!これはどういうものかというと、たとえば、DB上には文字列で保存をして、Entity上はIntegerで保持するといったもの。ラッパクラス以外でもふつうに使えるので、アプリケーションに合わせて積極的にコンバータを作っておくと既存のDBを変更せず、かといってそれにEntity操作が引きずられない、非常に良いものが出来上がる。コードは昨日のエントリのJPA2.0のサンプルをもとに変更してみよう。addressという文字列型には都道府県が入っていたので、そこに使ってみる。これをDB上は文字列のまま変更せず、Entity上で扱う場合はIntegerで都道府県コードを利用するようにしてみよう。}「@Convert」がそれ。これでコンバータのクラスを設定する。グローバル設定グローバルに設定した場合はコンバータの指定はいらなくなる。true)これだけでその型が見つかると自動でコンバータが適用される。そのため、上記のサンプルのようなIntegerとかラッパクラスでは利用してはいけない。Integerを使っているところすべてに適用されてしまうからだ。コンバータのすごさがおわかりだろうか。これでオブジェクト指向らしいコードが標準APIのみで書ける。コレクション的なものを安全にカンマ区切りで文字列として突っ込む、取り出すとかも可能だ。JavaSEで動かす場合、コンバータのクラスがJPAに自動登録されないためEntityと同じくpersistence.xmlまたはorm.xmlに記述するとよいだろう。CASE文を試すJPA2.0にはCASE文が使えるようになった。月別アーカイブおすすめはてなブログをはじめよう!shinさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。