Java (使用Spring)当地图看起来很好时,如何阻止DTO重复?

Java (使用Spring)当地图看起来很好时,如何阻止DTO重复?,java,spring,jdbc,mapping,Java,Spring,Jdbc,Mapping,在这个程序中,我有三个用户输入的数字,我试图通过从DTO中提取来获取要显示的集合中的第二个数字,以便我可以确认一切正常。但是有些地方出了问题,你可以从输出中看到 用户输入:858508218585094918510385 //This code is what is being executed. (Think of it as main) private void handleSubmit(final AjaxRequestTarget target) { List<

在这个程序中,我有三个用户输入的数字,我试图通过从DTO中提取来获取要显示的集合中的第二个数字,以便我可以确认一切正常。但是有些地方出了问题,你可以从输出中看到

用户输入:858508218585094918510385

//This code is what is being executed. (Think of it as main)
 private void handleSubmit(final AjaxRequestTarget target) {


        List<Long> msgNums = new ArrayList<Long>();

        msg_Num = Ta.getInput();

        String[] Numbers = msg_Num.split(",");

        for(String Number:Numbers){
             msgNums.add(Long.valueOf(Number));
        }

        System.out.println(msgNums.get(1));

        List<BulkReplayMessageDTO> brm = messageReplayDao.getMessageResults(msgNums);

        System.out.println(brm.get(1).getMsgNum());
 }
请注意,我已经在handleSubmit方法中打印到控制台,并且在我的映射中。我得到的输出是

858509491
0
1
2
858510385 
应该是什么时候

858509491
0
1
2
858509491

我不知道问题可能是什么,因为我发现了其他几乎相同的代码示例,而我的代码示例似乎非常相似。我对使用Spring还很陌生,如果答案很明显,那么很抱歉。

我发现了这个问题,而且这个问题非常简单。在DTO中,变量是根据我正在处理的前一个问题设置为静态的。在我解决了这个问题之后,我忘了把它扔掉。如果我理解了静态的含义,那么我已经使这些变量的所有实例都相同了。这就是为什么我只能打印出用户输入的最后一个数字。

啊,我应该补充的是,即使我尝试从DTO中的另一行打印,我仍然会得到858510385。我想这只是因为您使用的是ArrayList,它不维护顺序。我帮不了你多少忙,因为我真的不知道数据库里有什么,如果你需要进一步的帮助,也可以在你的mapper
rs.getLong(“MSG_NBR”)
中使用这个系统。也许这会给你一个主意。谢谢你的建议。我按照你的建议做了,我看到所有的东西都按正确的顺序打印出来了。因此,我可以将问题缩小到DTO或DAO。映射器似乎很好。
//And finally the DTO
 public class BulkReplayMessageDTO{
      private static Long msgNum;
      private static String MSG;

      public  final Long getMsgNum() {
        return msgNum;
      }
      public final void setMsgNum(final Long msgNumTemp) {
        msgNum = msgNumTemp;
      }

      public  final String getMSG(){
          return MSG;
      }
      public final void setMSG(final String MSGTemp){
          MSG = MSGTemp;
      }
}
858509491
0
1
2
858510385 
858509491
0
1
2
858509491