到目前为止我尝试了以下代码:
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 列表中的第一个元素。
如何让它保存列表中的其他元素?
感谢您的建议。
最佳答案
您不断更新同一个对象。
您只需在循环内创建UserCountry
和UserLanguage
即可。截至目前,您正在循环之外进行创建。只需将它们移动到循环内即可。
例如:
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/