Data binding: BeanFieldGroup Problem with nested item

Hello,

I am using Vaadin 7.1.0beta

I use a POJO wrapped in a BeanItem and would like to bind it to a form using the buildAndBind() function of the BeanFieldGroup:


FieldGroup fieldGroup = new BeanFieldGroup<EventItem>(EventItem.class);
fieldGroup.setItemDataSource(new BeanItem<EventItem>(this.event));

for (Object propertyId : fieldGroup.getUnboundPropertyIds()) {
	layout.addComponent(fieldGroup.buildAndBind(propertyId));
}

this works perfectly fine to generate a form for simple data types and even for the DateField with a date picker since Version 7.1.

Since my data model is a bit more complex I do have references to other POJOs within “EventItem” and within these items again reference to other data classes. Therefore this is a cascade of nested items.
When I run the code I get a com.vaadin.data.Buffered$SourceException error , which is caused by the nested items.

Now I have three questions:

  • if i have a reference to a data item which itself contains nothing but simple types, is it possible to get the fields of the referenced item rendered automatically in vaadin 7.x or fo i have to define it manually as suggested in https://vaadin.com/book/-/page/datamodel.container.html#datamodel.container.beancontainer.nestedproperties

  • is there any automatic mechanism to render 1:n relationships, e.g. if eventitem contains a set of items, it would be cool to get this set of automatically rendered within a table in the form. I know I could do it manually, but it would be nice if there was some automation behind it.

  • can i control how deep nested items will be followed? E.g. if i have a set of and within participants i have a set of some other complex datatypes. Theoretically this could mean an infinite number of tables within tables which sounds useless. Can I exclude complex datatypes e.g. in the second tier data item? Here this would mean to exclude all complex data types in so that the set of can be rendere in a simple table.

Sorry if my explanation is a bit sophisticated. Thanks for any help or hint.