java - 如何使用 hibernate 保存数组值

标签 java hibernate

我有一个 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/

相关文章:

java - 查询期间不要解析 @ManyToOne 字段

java - 如何在不滚动到顶部的情况下将新项目添加到 recyclerview

java - 什么 Hibernate 类型用于 SQLQuery 中的可序列化字段

java - hibernate 没有获取序列的 next_val

hibernate - Hibernate 3.0 中的条件映射?

java - 如何使 JFrame 类成为我的主类?

java - 两台机器之间使用java进行通信

java - 工具栏的标题应该根据 Activity 而变化吗?

java - 在哪里使用@NamedQueries

java - 填充主键的 Hibernate saveOrUpdate