java - 使用 dao 和 for 循环保存到数据库,保存被覆盖

标签 java spring-mvc spring-boot intellij-idea

我的程序接受两个字符串,将它们分割成一个数组列表,查找公共(public)字符串,并允许用户以复选框形式存储公共(public)字符串。

public String savedResults(@ModelAttribute @Valid Trigger newTrigger, User aUser, Model model, @RequestParam String aTrigger){

    model.addAttribute("aTrigger", aTrigger);

    aUser.getUid();

    newTrigger.setUser(aUser);
    String[] manyTriggers = aTrigger.split(",");

    for(String item : manyTriggers) {
        newTrigger.setKnownTriggers(item);
        triggerDao.save(newTrigger);
    }
    return "html file"
}

问题是将每个选定的项目保存在新行中。 for 循环每次迭代 manyTriggers 时都会覆盖 dao.save,而不是将其保存到数据库并继续将下一项保存到数据库的新行中。

最佳答案

每次将Trigger保存到for循环中时,您都可以创建一个新的Trigger实例,如下所示:

public String savedResults(@ModelAttribute @Valid Trigger newTrigger, User aUser, Model model, @RequestParam String aTrigger){

    model.addAttribute("aTrigger", aTrigger);

    aUser.getUid();

    String[] manyTriggers = aTrigger.split(",");

    for(String item : manyTriggers) {
        Trigger newTrigger = new Trigger();
        newTrigger.setUser(aUser);
        newTrigger.setKnownTriggers(item);
        triggerDao.save(newTrigger);
    }
    return "html file"
}
<小时/>

另一个选择是使用 JPA persist() 方法,该方法始终创建一个新对象(请注意,使用此方法您将无法更新现有记录)。请参阅:

    public String savedResults(@ModelAttribute @Valid Trigger newTrigger, User aUser, Model model, @RequestParam String aTrigger){

    model.addAttribute("aTrigger", aTrigger);

    aUser.getUid();

    newTrigger.setUser(aUser);
    String[] manyTriggers = aTrigger.split(",");

    for(String item : manyTriggers) {
        newTrigger.setKnownTriggers(item);
        triggerDao.persist(newTrigger);
    }
    return "html file"
}

关于java - 使用 dao 和 for 循环保存到数据库,保存被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45579026/

相关文章:

java - 如何不将重复项添加到数组列表中

java - Apache Camel : DefaultMessage cannot be cast to JmsMessage

java - 当使用 JPA Hibernate 将子项和父项存储在同一个表中时,在当前和所有后续父项中使用提供的值进行搜索

Spring Boot JPA - 配置自动重新连接

java - 测试中的 Spring Boot 重写接口(interface)

java - 使用一个带参数的 getter,而不是使用多个不带参数的 getter

java - 为什么 Maven 构建失败并出现错误 : "package com.microsoft.jdbc.sqlserver does not exist"?

java - 将excel读入java - 如何简化

spring - Websphere 应用程序服务器 - Spring MVC - java.lang.NoSuchMethodError : org/codehaus/jackson/map/type/TypeFactory. 类型

java - 部署 JSF-Spring 应用程序时出错