2014-10-01 86 views
0

我有包含在我的控制器类以下字段验证每个领域的变化领域类

private long id; 

private String questionNo; 

private byte[] question; 

private byte[] option1; 

private byte[] option2; 

private byte[] option3; 

private byte[] option4; 

private String answer; 

private byte[] explanation; 

private Topic topic; 

private Chapter chapter; 

private Subject subject; 

我想验证用于更新目的的各个领域改变域类。

我已经尝试过

0 = 'success' 
1='No Change' 
2='Question No Already Exists' 


public int validateQuestion(Question question){ 
     Question questionForCheckNo=questionService.findQuestionByQuestionNo(question.getQuestionNo()); 
     Question existingQuestion=questionService.findById(question.getId()); 
     if (existingQuestion != null 
       && ((question.getSubject().getId() == existingQuestion 
         .getSubject().getId()) 
         && (question.getChapter().getId() == existingQuestion 
           .getChapter().getId()) 
         && (question.getTopic().getId() == existingQuestion 
           .getTopic().getId()) 
         && (question.getQuestionNo().equals(existingQuestion 
           .getQuestionNo())) 
         && (question.getAnswer() 
         .equals(existingQuestion.getAnswer())) 
         &&(question.getIsMock()==existingQuestion.getIsMock()) 
         &&(!Arrays.equals(question.getQuestion(), existingQuestion.getQuestion())) 
         &&(!Arrays.equals(question.getOption1(), existingQuestion.getOption1())) 
         &&(!Arrays.equals(question.getOption2(), existingQuestion.getOption2())) 
         &&(!Arrays.equals(question.getOption3(), existingQuestion.getOption3())) 
         &&(!Arrays.equals(question.getOption4(), existingQuestion.getOption4())) 
         &&(!Arrays.equals(question.getExplanation(), existingQuestion.getExplanation())) 

       )) { 

      return 1; 
     } 
     else if(questionForCheckNo!=null){ 
      return 2; 
     } 



     return 0; 
    } 

调用这个函数每次只返回“1'.even如果我改变字节数组场时间。

但其他一切都很好。

+0

调试器将帮助你。 – 2014-10-01 06:00:27

+0

我试着用我的远程调试器..不改变 – boycod3 2014-10-01 06:01:25

+0

questionService.findQuestionByQuestionNo(question.getQuestionNo()); questionService.findById(question.getId()); 这两个方法将返回什么? 你可以enplane @ jijishvu07 – yugi 2014-10-01 06:26:17

回答

0

您有问题与!

!Arrays.equals(question.getQuestion(), existingQuestion.getQuestion()) 

当你改变阵列Arrays.equals()返回false,但!false将再次将其转换为true

所以你会得到1

+0

其实我每次都得到1,即使我改变我的领域。 两个都试过'!'没有。 – boycod3 2014-10-01 06:20:20