【发布时间】:2013-03-21 18:00:32
【问题描述】:
以下代码有什么问题?
@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。我假设 pin 默认情况下是一个延迟加载的集合,所以可能是在保存时强制它初始化会搞砸一些事情。
我正在使用 Play 1.2.5
【问题讨论】:
-
控制台是否打印日志
Logger.info("PRESAVE")? -
@iwawiwi 是的,确实如此
-
好的。如果您在循环之前执行
List<PinBoard> piboard_list = board.pins。并循环pinboard_list它仍然不存在吗?如果还是不行。我建议您将验证代码放入控制器并在调用save()方法之前执行此操作。
标签: java jpa playframework playframework-1.x