我有一个string []类型的bean,它有两个或多个值。我想保存数组:
user.setItem(item[i]);
session.beginTransaction();
session.save(user);
session.getTransaction().commit();
但我只保存了一个数据项而不是整个数组。
答案 0 :(得分:3)
如果您使用的是注释,请执行以下操作(使用列表而不是数组)
@Entity
public class User {
private List<String> itemList = new ArrayList<String>();
@CollectionOfElements
@JoinTable(name="TABLE_ITEM")
private List<String> getItemList() {
return this.itemList;
}
}
并执行以下操作
User user = (User) sessionFactory.openSession().get(User.class, userId);
user.getItemList().add(item);
因为您有一个托管实体实例(User),并且值类型实例(您的String列表)的生命周期绑定到其拥有实体实例(User)的生命周期。 Hibernate将保存您的新项目。