私はHibernateのUserTypeを拡張するClobTypeを持っています。期待どおりのことを行います。データベース内のclobをStringに変換します。私はclob列をClobTypeにマップしました。それらの列はJSPページでアクセスするときれいにレンダリングされます。Hibernate:カスタムUserTypeの値を設定する方法
しかし、私は値を設定しようとしているので、私は困惑しています。私は私のJSPページで${myObject.longField}
が私に語っ書くことができますので、私はおそらく
String s = myObject.getLongField().toString();
を言うとロングフィールドの型が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として実装されているかどうかを知る必要はありません。
ポインタありがとうございます。しかし、私は注釈を使用していないので、私はそれをどのように "翻訳"するのか分かりません。 – Marvo
xmlでもそれを行う方法があるかもしれませんが、私は翻訳を正しく理解していません。 –
あなたは何を知っていますか?私は間違いなくこれをすべて「正しい」方法でやっていました。今日私のマッピングファイルからポーズを再生成したとき、これらのclobフィールドのテストが壊れました。理由はマッピングがそこにあったからですが、POJOのフィールドは文字列として定義されていました。そして、Hibernateはまさにそれを魔法のように扱います。 – Marvo