我有一个 Web 应用程序(使用 Vaadin、Hibernate 和 Postgres 数据库),用户可以在其中向某个表添加数据。当用户向此表中添加项目时,他们被要求输入名称、日期,并从表中选择所有相关产品。当他们单击保存时,我可以将名称和日期保存到数据库中,但是无法从表中抓取项目并将它们放入要添加的集合中。表的 bean 类如下所示:
/** Created by Hibernate **/
public class BeanClass implements Serializable {
private String name;
private Date date;
private Set relatedProducts = new HashSet(0);
.
.
.
}
我用来保存用户想要添加的项目的代码是:
BeanClass toAdd = new BeanClass();
Set temp = null
/** There is a table where the user can select all the products they want to add
* When they select an item it goes to another table, so what I am doing here
* is adding looping through latter table and adding all the items they selected
* to a set (supposedly i think this should work
**/
for (Object item : table) {
temp.add(table.getContainerProperty("id", item));
}
toAdd.setName(nameField.getValue()); //I have input fields for the name and date
toAdd.setDate(dateField.getValue());
toAdd.setRelatedProducts(temp);
hbsession.save(toAdd);
当用户单击保存时,名称和日期会添加到表中,但相关产品不会添加到关系表中(在数据库中)。我已经研究过休眠中的级联和反向,我认为我将不得不使用这些,但不太了解如何使用。