如何使用hibernate保存数组值

时间:2010-04-20 13:44:05

标签: java hibernate

我有一个string []类型的bean,它有两个或多个值。我想保存数组:

user.setItem(item[i]);
session.beginTransaction();
session.save(user);
session.getTransaction().commit();  

但我只保存了一个数据项而不是整个数组。

1 个答案:

答案 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将保存您的新项目。