java - 如何使用 JPA 将 List<String> 中的多个 String 元素保存到数据库中?

标签 java jsp jpa persistence

到目前为止我尝试了以下代码:

Session session = null;
Query query1 = null;
Query query2 = null;

String[] parts = userId.split("=");
userId = parts[1];
parts = userId.split(" ");
userId = parts[0];
int intIdUser = Integer.parseInt(userId);

try {
    session = getSession();

    UserCountry userCountry = new UserCountry();
    UserLanguage userLanguage = new UserLanguage();

    for (String s : user_country) {
        userCountry.setUserId(intIdUser);
        userCountry.setCountryId(Integer.parseInt(s));

        session.getTransaction().begin();
        session.persist(userCountry);
        session.getTransaction().commit();
    }

    for (String s : user_language) {
        userLanguage.setUserId(intIdUser);
        userLanguage.setLanguageId(Integer.parseInt(s));

        session.getTransaction().begin();
        session.persist(userLanguage);
        session.getTransaction().commit();
    }
}

catch(Exception e) {
    logger.error("Exception while fetching for countryId: "+userId, e);
    throw new PlRuntimeException(e.getMessage());
    }
finally {
    if(session !=null)
        session.close();
}

但是 for (String s : user_country) 和 for (String s : user_language) 循环仅保存 user_country 和 user_language 列表中的第一个元素。

如何让它保存列表中的其他元素?

感谢您的建议。

最佳答案

您不断更新同一个对象。

您只需在循环内创建UserCountryUserLanguage 即可。截至目前,您正在循环之外进行创建。只需将它们移动到循环内即可。

例如:

for (String s : user_country) {
        UserCountry userCountry = new UserCountry();
        userCountry.setUserId(intIdUser);
        userCountry.setCountryId(Integer.parseInt(s));

        session.getTransaction().begin();
        session.persist(userCountry);
        session.getTransaction().commit();
    }

关于java - 如何使用 JPA 将 List<String> 中的多个 String 元素保存到数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24533811/

相关文章:

java - 向玩家数组列表发一张牌

java - 根据访问者类型提供不同用户体验的好方法是什么?

java - 如果从 servlet 重定向,则在 JSP 上执行操作

java - 如何使用 bootstrap select 在每个 spring mvc3 选择列表中设置所选项目?

java - 隔离级别和不一致状态

java - 获取Hibernate在Spring中的配置

java - 在 spring mvc 配置 servlet xml 中使用属性文件的属性

java - 如何在多语言Android应用程序中获取选定的Radiobutton?

java - Servlet 返回 "HTTP Status 404 The requested resource (/servlet) is not available"

java - 在 JPQL 中为过滤器添加两个字符串变量?