Java 如何从列表中保存多个字符串元素<;字符串>;使用JPA进入数据库?

Java 如何从列表中保存多个字符串元素<;字符串>;使用JPA进入数据库?,java,jsp,jpa,persistence,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 = get

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

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\u country)和for(String s:user\u language)循环只保存了user\u country和user\u 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();
    }

这个有帮助!谢谢。@SURESH ATA:您能提供一个使用JPA删除行的解决方案吗?很奇怪,在他的问题中,他说
循环只保存列表中的第一个元素user\u country和user\u language
。但是如果他重复更新同一个persitent实例,这应该是最后一个了,不是吗?@roror,因为所有的实例都是一样的。他弄糊涂了:)是的:)删除行有什么解决方案吗?