2010-04-20 30 views
1

我有一个类型为string []的bean,它有两个或多个值。我想要保存阵列:如何使用休眠保存数组值

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

但我只得到一个数据项保存不是整个阵列。

回答

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); 

做和值类型实例(您的字符串列表)的生命周期绑定到其拥有的实体实例(用户)的生命周期。休眠会保存你的新项目。