2013-03-21 66 views
1

下面這段代碼有什麼問題?數據沒有得到保存

@PrePersist 
    public void preSave() throws DuplicatePinException { 
     Logger.info("PRESAVE"); 
     for (PinBoard pb : board.pins) { 
      if (pb.pin.id.equals(this.pin.id)) { 
       throw new DuplicatePinException(); 
      } 
     } 
    } 

此方法在我的PinBoard類中。我想要一個快速的方法來驗證沒有重複的條目可以保存。如果我包含該方法,則不會保存任何內容。永遠。我將其追溯到board.pins。我認爲默認情況下,引腳是一個延遲加載的集合,所以它可能是強制它在保存時初始化的東西。

我使用的播放1.2.5

+0

是控制檯打印日誌'Logger.info ( 「PRESAVE」)'? – 2013-03-22 03:57:32

+0

@iwawiwi是的,它確實 – preslavrachev 2013-03-22 07:09:17

+0

好的。如果你在循環之前做'列出 piboard_list = board.pins'。並且在'pinboard_list'上循環它仍然沒有持續?如果還不行的話。我會建議你把驗證碼放在控制器中,並在調用'save()'方法之前執行該操作。 – 2013-03-22 12:03:41

回答

0

林不知道打1,但在場上2 @PrePersist不包括在內,所以方法永遠不會得到所謂的