FieldGroup$BindException: Cannot bind property id

Hi,

I search and try other ways to do it but I can´t.

my pojo :

private BigDecimal idUsuario = BigDecimal.ZERO;

my class:

txtID = new TextField(“Código”, “”);
txtID.setWidth(100.0f, Unit.PERCENTAGE);
//txtID.setNullRepresentation(“0”);
//here I try it
txtID.setConverter((Converter<String, BigDecimal>) new BigDecimalStringConverter());
//try https://vaadin.com/forum#!/thread/2583480/2621700
txtID.setNullSettingAllowed(false);
NumberFormat nf = DecimalFormat.getNumberInstance(getLocale());
txtID.setNullRepresentation(nf.format(BigDecimal.ZERO));

button.click ()
//new user

Usuario usuario = new Usuario();

  try {
        PropertysetItem item = new BeanItem<Usuario>(usuario);
        FieldGroup binder = new FieldGroup(item);
    } catch (Exception e){
        e.printStackTrace();
    } finally {
        binder.bind(txtID, "idUsuario");  // ERROR GOES HERE ;

}

ERROR:
com.vaadin.data.fieldgroup.FieldGroup$BindException: Cannot bind property id ‘idUsuario’ to a null field.
at com.vaadin.data.fieldgroup.FieldGroup.throwIfFieldIsNull(FieldGroup.java:292)
at com.vaadin.data.fieldgroup.FieldGroup.bind(FieldGroup.java:253)
at com.ebfvaz.comercial.view.UsuarioCad.changeBind(UsuarioCad.java:483)
at com.ebfvaz.comercial.view.UsuarioCad.access$1(UsuarioCad.java:474)
at com.ebfvaz.comercial.view.UsuarioCad$2.buttonClick(UsuarioCad.java:215)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:508)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:198)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:161)
at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:995)
at com.vaadin.ui.Button.fireClick(Button.java:393)
at com.vaadin.ui.Button$1.click(Button.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:313)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:202)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:95)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1408)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:350)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

I made some changes and it works ,

#1 -
txtID = new TextField(“Código”, “”);
Changed to
txtID = new TextField(“Código”,item.getItemProperty(“idUsuario”));

#2 -
try {
PropertysetItem item = new BeanItem(usuario);
FieldGroup binder = new FieldGroup(item);
} catch (Exception e){
e.printStackTrace();
} finally {
binder.bind(txtID, “idUsuario”); // ERROR GOES HERE ;
}
Changed to
BeanFieldGroup binder = new BeanFieldGroup(Usuario.class);
binder.setBuffered(false);
item = new BeanItem(usuario);
binder.setItemDataSource(item);

#3 -
BeanItem item = new BeanItem(usuario);