我有一个 string[] 类型的 bean,它有两个或多个值。我想保存数组:
user.setItem(item[i]);
session.beginTransaction();
session.save(user);
session.getTransaction().commit();
但我只保存了一个数据项,而不是整个数组。
最佳答案
如果你使用的是Annotation,按如下操作(用List代替Array)
@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);
因为您有一个托管实体实例(用户),并且值类型实例(您的字符串列表)的生命周期绑定(bind)到它拥有的实体实例(用户)的生命周期。 Hibernate 将保存您的新项目。
关于java - 如何使用 hibernate 保存数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2675550/