1

为了验证我的实体 bean,我在我的 bean 中创建了这个验证方法

@PrePersist
@PreUpdate
public void validate(){
    if (startTime.after(stopTime)) throw new ValidationException("Wrong order");
}

ValidationException 如下所示:

@ApplicationException(rollback = true)
public class ValidationException extends RuntimeException {


public ValidationException(String message) {
    super(message);
}
}

如果我尝试用

try {
        timeframefacade.create(timeframe);

    } catch (Exception e) {
        System.out.println(e.getMessage());

e.getMessage() 返回“错误的顺序”,这是正确的

try {
        timeframefacade.edit(timeframe);

    } catch (Exception e) {
        System.out.println(e.getMessage());

它返回“事务中止”,这是一个 EJBException。如何获得与上述相同的结果并避免所有日志记录,这也会发生?

4

1 回答 1

2

在您的编辑方法中调用 flush 以强制进行预更新。否则,它会在事务完成时发生,而容器必须抛出一个事务异常。

于 2013-04-07T13:15:56.677 回答