ListStoreEditorサブエディターを含むGXTグリッドを介してサーバーエンティティのOneToManyリストにnullを保存する理由を誰かが解決できますか?
私はSenchaの例であるGridBindingExampleに従ってティーを打ちました。 http://www.sencha.com/examples/#ExamplePlace:gridbinding
public class MyEditor implements IsWidget, Editor<FooProxy> {
interface Binder extends UiBinder<Widget, MyEditor> {}
private static Binder uiBinder = GWT.create(Binder.class);
public interface Driver extends SimpleBeanEditorDriver<MyProxy, MyEditor> {}
private Driver driver = GWT.create(Driver.class);
private ListStore<BarProxy> store;
ListStoreEditor<BarProxy> items;
@Ignore
@UiField(provided = true)
Grid<BarProxy> grid;
@Ignore
@UiField
ChildEditor childEditor;
@Override
public Widget asWidget() {
MyProperties props = GWT.create(MyProperties.class);
this.store = new ListStore<BarProxy>(props.key());
List<ColumnConfig<BarProxy, ?>> columns = new ArrayList<ColumnConfig<BarProxy, ?>>();
columns.add(new ColumnConfig<BarProxy, String>(props.itemName(), 300, "MyColumn"));
this.grid = new Grid<BarProxy>(store,new ColumnModel<BarProxy>(columns));
items = new ListStoreEditor<BarProxy>(store);
Widget widget = uiBinder.createAndBindUi(this);
driver.initialize(childEditor);
childEditor.getCreateButton().addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
RequestContext context = factoryProvider.get().barRequest();
BarProxy entity = context.create(BarProxy.class);
entity.setName("Eugene Qtest");
entity.setAge(45);
driver.edit(entity);
store.add(driver.flush());
}
});
return widget;
}
}
public class ChildEditor implements IsWidget, Editor<BarProxy> {
interface Binder extends UiBinder<Widget, ChildEditor> {}
private static Binder uiBinder = GWT.create(Binder.class);
@UiField
TextButton createButton;
@Override
public Widget asWidget() {
return uiBinder.createAndBindUi(this);
}
public TextButton getCreateButton() {
return createButton;
}
}
私のコードの上位レベルのプレゼンターでは、次のように呼び出しています。
RequestContext req = editorPresenter.getDriver().flush();
req.fire();
これにより、GWTエディターがキャプチャするすべてのデータ要素が保存されます。私のデータベースでは、上記のコードでグリッドの行を作成しますが、すべての値がnullであるため、RequestContextが起動すると、persistはグリッド内に空の行を戻します。したがって、OneToMany関係のエンティティをその親エンティティに関連付けるための外部キーはありません。
また、サーバーへのJSONリクエストとレスポンスを確認しましたが、エンティティで値が送信されていないようです。難読化されているかもしれませんが、他の値はプレーンテキストのように見えるので、プロキシエンティティの値が渡されているとは思えません。
どんな助けでも素晴らしいでしょう!ありがとう