gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 12:47:37 25 4
gpt4 key购买 nike

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com