1

InformixPlatformEclipseLink のクラス (Informix データベースを EclipseLink 内部の要件に適合させる責任を負うクラス) で問題を発見 (および報告) しています。

型変換の問題がいくつかあります。たとえば、Informix は 2 つの不透明なリテラル (tおよびf-- 文字ではなく、実際のリテラル) をネイティブboolean値としてサポートします。おそらく、EclipseLink がSMALLINT代わりにデータベース タイプとして使用しようとしているようです。

内に多くの手続き型コードSessionCustomizerがなければ、このようなグローバルな変換動作を修正または改善する適切な場所が見つかりません。

このグローバルなデータベースから値を取得し、それを Java オブジェクトに変換する動作 を登録するのに最適な場所はどこですか? 他の質問はこれが不可能であることを示しているようですが、私はそれを信じるのは非常に難しいと思います.

4

1 に答える 1

1

独自の変換マネージャークラスを作成します
(extend org.eclipse.persistence.internal.helper.ConversionManager)。
メソッドをオーバーライドしますconvertObjectToBoolean()

eclipselinkで独自の変換マネージャーインスタンスの使用を有効にするには、を使用しSessionCustomizerて呼び出しますsession.getPlatform().setConversionManager()

ただし、このメソッドのソースコードを見ると、tおよびfリテラルのサポートはすでに実装されているようです(少なくともeclipselink 2.3.3では)。
しかし、おそらくバグがありますか?アプリケーションの実行中にこのメソッドをデバッグして、そこで何が起こっているかを実際に確認することをお勧めします。

于 2013-02-28T16:45:41.840 に答える