Spring 根据选定的值更改数据库中的多个列-Hibernate

Spring 根据选定的值更改数据库中的多个列-Hibernate,spring,hibernate,jsp,Spring,Hibernate,Jsp,我使用for each循环以以下方式显示JSP页面中特定表的详细信息: <c:forEach items="${List2}" var="alist"> <tr> <td> <input type="checkbox" name="check" value="${alist.check}"> </td> <td>${alist.two}</

我使用for each循环以以下方式显示JSP页面中特定表的详细信息:

<c:forEach items="${List2}" var="alist">
    <tr>
        <td>
            <input type="checkbox" name="check" value="${alist.check}">
        </td>
        <td>${alist.two}</td>
        <td>${alist.three}</td>
        <td>${alist.four}</td>
    </tr>
</c:forEach>
<input type="radio" id="agree" value="Agree"/>Agree 
<input type="radio" id="disagree" value="Disagree"/> Disagree
<input type="submit" value="Submit"/>

${alist.two}
${alist.three}
${alist.four}
同意
不同意

现在,我的数据库中没有名为“check”的列。这是我的POJO中的一个瞬态场。我的数据库中确实有“同意/不同意”列。我想检查特定行,单击“同意”或“不同意”,然后单击“提交”,这些记录的“同意/不同意”列应分别更新。我正在使用SpringMVC和Hibernate。如果需要我方提供更多信息,请告诉我。

您可以使用简单的jQuery,将
class
(此处为
.chkbox
)设置为所有复选框。无论何时发生任何变化,比如

  • 如果选中,复选框的值将添加到JS数组中

  • 如果未选中,该值将从JS数组中删除

最后,我使用textbox保存所有选中的复选框值。您可以将其设置为隐藏的名称属性

<input type="checkbox" class="chkbox" value="101"> This is 101<br />
<input type="checkbox" class="chkbox" value="102"> This is 102<br />
<input type="checkbox" class="chkbox" value="103"> This is 103<br />
<input type="checkbox" class="chkbox" value="110"> This is 110<br />
<input type="checkbox" class="chkbox" value="111"> This is 111<br />
<input type="checkbox" class="chkbox" value="112"> This is 112
<br />
<input type="hidden" id="textbox1" name="selectedArray" />
这些都是必需的


看看它是如何工作的。希望这能有所帮助。

您可以通过简单的jQuery来实现这一点,将
class
(在这里说
.chkbox
)设置为所有复选框。无论何时发生任何变化,比如

  • 如果选中,复选框的值将添加到JS数组中

  • 如果未选中,该值将从JS数组中删除

最后,我使用textbox保存所有选中的复选框值。您可以将其设置为隐藏的名称属性

<input type="checkbox" class="chkbox" value="101"> This is 101<br />
<input type="checkbox" class="chkbox" value="102"> This is 102<br />
<input type="checkbox" class="chkbox" value="103"> This is 103<br />
<input type="checkbox" class="chkbox" value="110"> This is 110<br />
<input type="checkbox" class="chkbox" value="111"> This is 111<br />
<input type="checkbox" class="chkbox" value="112"> This is 112
<br />
<input type="hidden" id="textbox1" name="selectedArray" />
这些都是必需的



看看它是如何工作的。希望这有帮助。

相反,它有两列
同意
不同意
,为什么不使用一列并将其映射到
检查
字段。你们可以用单选按钮代替复选框,我只有一列。该列需要更新为“同意”或“不同意”。我需要一次更新多个记录。因此,复选框。一旦用户单击submit按钮,我相信在服务器端,您必须知道要将列更新为同意/不同意的实体(或行)的ID。如果是这样,则可以发出
HQL update
命令以及
in
关键字。不是吗?单个用户可以同意或不同意不同的记录。他可以同意一条记录而不同意另一条记录。如果我们有需要标记为
Agree
(称之为agreeID)的记录ID列表和需要标记为
Disgree
(称之为disagreeID)的记录ID列表,仍然可以这样做
session.createQuery(“更新实体名称e set e.column=:status where e.id in(:agreeIdsList)”).setParameter(“status”,“Agree”).setParameterList(“agreeIdsList”,agreeIds).executeUpdate()
。同样地,现在使用
discoverids
再次调用相同的查询。除非我遗漏了你的问题。相反,它是两列
同意
不同意
,为什么不使用一列并将其映射到
检查
字段。你们可以用单选按钮代替复选框,我只有一列。该列需要更新为“同意”或“不同意”。我需要一次更新多个记录。因此,复选框。一旦用户单击submit按钮,我相信在服务器端,您必须知道要将列更新为同意/不同意的实体(或行)的ID。如果是这样,则可以发出
HQL update
命令以及
in
关键字。不是吗?单个用户可以同意或不同意不同的记录。他可以同意一条记录而不同意另一条记录。如果我们有需要标记为
Agree
(称之为agreeID)的记录ID列表和需要标记为
Disgree
(称之为disagreeID)的记录ID列表,仍然可以这样做
session.createQuery(“更新实体名称e set e.column=:status where e.id in(:agreeIdsList)”).setParameter(“status”,“Agree”).setParameterList(“agreeIdsList”,agreeIds).executeUpdate()
。同样地,现在使用
discoverids
再次调用相同的查询。除非我遗漏了你的问题。表格的每一行都会有一个复选框,并且复选框的数量不是固定的。这很好,我可以从你的代码中看到。它在循环的内部。我这样做是为了样品。如果你用你的代码试试,你会知道的。见更新部分,你必须为复选框添加
和添加
隐藏输入
“Check”在我的类中映射为布尔属性。因此,如果只发送
True/False
,那么传递给字符串的值将是“True”或“False”,您将如何确定它应该影响哪个列?在示例中,我将发送列的
ID
。我只是在添加选中的复选框,即特定ID的真实值。如果需要解释,请告诉我。表格的每一行都有一个复选框,并且复选框的数量不是固定的。这非常好,我可以从您的代码中看到。它在循环的内部。我这样做是为了样品。如果你用你的代码试试,你会知道的。见更新部分,你必须为复选框添加
和添加
隐藏输入
“Check”在我的类中映射为布尔属性。因此,如果只发送
True/False
,那么传递给字符串的值将是“True”或“False”,您将如何确定它应该影响哪个列?在示例中,我将发送列的
ID
。我只是在添加选中的复选框,即特定ID的真实值。如果有什么需要解释的,请告诉我。
<c:forEach items="${List2}" var="alist">
    <tr>
        <td>
            <input type="checkbox" class="chkbox" name="check" value="${alist.check}">
        </td>
        <td>${alist.two}</td>
        <td>${alist.three}</td>
        <td>${alist.four}</td>
    </tr>
    <input type="hidden" id="textbox1" name="selectedArray" />
</c:forEach>