2013-03-21 109 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不包括在内,所以方法永远不会得到所谓的