0

添加到数据库(提交数据)后,没有在我的 AccessBean 中获取最新插入的数据。但是当我再次回到 jsp 时,数据是可用的。我不知道如何解决这个问题。

下面是 cmdImpl 中的插入代码

AddressAccessBean add  = new AddressAccessBean(Long.parseLong(memberid),shipid);
                    shipBean.setInitKey_ShipToCodeName(shipid);

   add.setAddressField2(shipBean.getName()+shipBean.getCity()+shipBean.getState());                  
   add.setAddressField1("WD");

   add.setMemberId(memberid);

   add.setAddressField3(shipid);

   add.setStatus("P");

   add.commitCopyHelper();

提交数据后,尝试通过accessbeans及其finder方法在jsp上获取数据并显示到jsp中的表中

<%
String[] member_Id = (String[])request.getAttribute("memberid");                        
String memberId=member_Id[0];
AddressAccessBean add = new AddressAccessBean();
java.util.Enumeration enu = add.findByMemberId(Long.parseLong(memberId));
while (enu.hasMoreElements()) {
      AddressAccessBean as = (AddressAccessBean) enu.nextElement();
      if (as.getAddressField3() != null && as.getAddressField1().equals("WD")) {
            com.ibm.commerce.extension.objects.xShipToCodeAccessBean bb = new com.ibm.commerce.extension.objects.xShipToCodeAccessBean().findByShipToCodeName(as.getAddressField3());
                                %>
<TR>
<Td ALIGN="LEFT" width="20%"><%=as.getAddressField2()%></Td>
<Td ALIGN="LEFT" width="20%"><%=bb.getName()%></Td>
<Td ALIGN="LEFT" size="15%"><%=bb.getShipToCodeName()%></Td>
<Td ALIGN="LEFT" size="10%"><%=bb.getCity()%></Td>
<Td ALIGN="LEFT" size="10%"><%=bb.getState()%></Td>
<Td ALIGN="LEFT" size="10%"><%=bb.getSoldTo()%>
</Td>
4

1 回答 1

0

如果您要转发到 JSP,则通过实体/访问 bean 插入的数据对于查找器查询将不可见。即,如果您要转发到 JSP 而不是重定向,则事务仅在 JSP 执行后才会提交。提交事务后,实体 bean 更改将写入 db。这就是为什么您在尝试使用查找器查询时无法看到插入的原因。

你有两个选择:-

  1. 将转发 JSP 转换为重定向 JSP。
  2. 使用 AddressAccessBean 的 setInitKey 方法使用地址 id 来获取数据
于 2012-03-07T05:40:59.127 回答