【问题标题】:Data does not get persisted数据不会持久化
【发布时间】: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


【解决方案1】:

我不确定第 1 场比赛,但在第 2 场比赛中,@PrePersist 不包括在内,因此永远不会调用方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    相关资源
    最近更新 更多