タペストリー値エンコーダーをハイバネート複合キーで動作させようとしています。私は次のコードを持っていると私は複合IDを取得し、後でオブジェクトにデコードするためにサーバーに戻って送信することができるインターフェイスに渡そうとしています。Tapestry5値エンコーダー(Hibernateコンポジットキー付き)
以下は私の価値エンコーダです。 toClientは、コンポジットキーをインターフェイスに送信する必要がある場所です。複合キーを取得する方法がわかりません。
@SuppressWarnings("unchecked")
public LabelAwareValueEncoder getEncoderVendor() {
return new LabelAwareValueEncoder<IfasvVendor>() {
public String toClient(IfasvVendor value) {
return value.getIfasvVendorPK().toString();
}
public IfasvVendor toValue(String clientValue) {
if (clientValue.isEmpty()) {
return null;
}
return (IfasvVendor) session.get(IfasvVendor.class, clientValue);
}
public String getLabel(IfasvVendor value) {
return value.getPeNameU();
}
};
}
誰かが私はより良い私は私の値エンコーダの作業を取得できるよう複合キーの操作方法を理解するのに役立つことができれば、それをいただければ幸いです。前もって感謝します。私は、これは動作するはずわからない
この時点でreturn (IfasvVendor) session.get(IfasvVendor.class, clientValue);
IfasvVendorPK.toString()
によって生成されたとして、あなたの「clientValue」は、文字列です:
1. IfasvVendorクラスにtoString()の実装を示してください。 2.セッション変数のタイプは何ですか? 3.セッションでIfasvVendorオブジェクトが使用可能になっていますか?セッションよりもデータストアから取得することをお勧めします。 – Jeshurun