I have two entity:
public class Item {
/* -- */
@ManyToMany(mappedBy = "items", fetch = FetchType.EAGER)
private Set<Order> orders;
/* getters and setters */
}
public class Order {
/* -- */
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "orders_items",
joinColumns = {@JoinColumn(name = "orderId")},
inverseJoinColumns = {@JoinColumn(name = "itemId")})
private Set<Item> items;
/* getters and setters */
}
And I try to create the form for add Items to Orders.
JPAContainer items = JPAContainerFactory.make(Item.class, MyVaadinUI.PERSISTENCE_UNIT);
Tabel newItemTable = new Table("", items);
newItemTable.setSelectable(true);
newItemTable.setMultiSelect(true);
/* ... */
formLayout.addComponent(newItemTable);
FieldGroup fg = new FieldGroup();
fg.bind(newItemTable, "items");
But, after commiting I have got an exception
Caused by: javax.persistence.PersistenceException: org.hibernate.PropertyAccessException: could not get a field value by reflection getter of Item.id
/* ... */
Caused by: org.hibernate.PropertyAccessException: could not get a field value by reflection getter of Item.id
/* ... */
Caused by: java.lang.IllegalArgumentException: Can not set java.lang.Integer field com.hickory.models.Item.id to java.lang.Integer
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168)
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:55)
at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:36)
at java.lang.reflect.Field.get(Field.java:379)
What wrong here, I have no idea, where should I check.