查看日志或者控制台,定位出错语句。 这种错误一般会发生在执行em.flush()操作时,往往是因为entity类上的验证注释使用不当造成的,尽量运用seam提供的framework(Home,Query)可以减少这种错误的发生,本人认为framwork灵活性不够高,远不能解决所有问题。
解决这一问题,关键是定位那个属性的注释出现了错误,java的异常机制
try {
persist(); // flush();
} catch (InvalidStateException v) {
InvalidValue[] invalid = v.getInvalidValues();
for (int i=0; i<invalid.length; ++i) {
InvalidValue bad = invalid[i];
System.out.println("===========================================");
System.out.println("insert(), " + bad.getPropertyPath() + ":" + bad.getPropertyName() + ":" + bad.getMessage());
}
throw v;
}
本文介绍了一种常见的em.flush()操作引发的错误及其解决方法。通过查看日志和控制台定位错误语句,并利用Java异常机制捕捉并打印具体错误信息,帮助开发者快速找到并修正entity类上验证注释的不当使用。
1360

被折叠的 条评论
为什么被折叠?



