Hibernate の UserType を拡張する ClobType があります。これは、データベースで見つかった clob を文字列に変換するという、期待どおりのことを行います。clob 列を ClobType にマップすると、JSP ページでアクセスすると、それらの列が適切にレンダリングされます。
しかし、値を設定しようとしている今、私は困惑しています。JSPページに書くことができるので${myObject.longField}
、おそらく言うことができると教えてくれます
String s = myObject.getLongField().toString();
LongField が ClobType 型であるにもかかわらず、文字列を取得します。
私が知らないのは、セッターの使い方です。ClobType は簡単にインスタンス化できますが、blob として永続化するために必要な文字列データを与えるにはどうすればよいでしょうか?
ClobType clobType = new ClobType();
String s = "... a really REALLY long string ...";
/* a miracle occurs */
myObject.setLongField( clobType );
myObjectDAO.saveOrUpdate( myObject );
ClobType に文字列値を与えるために必要な奇跡は何ですか?
または、私の 2 つのセッターが ClobTypes ではなく Strings を返すより良い (またはより適切な) 方法はありますか? これを行う特別なマッピングはありますか? 私のビジネス ロジックでは、特定の列が BLOB として実装されていることを知る必要はありません。