关于EJB3.0的一个捕捉异常的问题。

06-09-01 lhq_007

最近在做一个项目,用到了EJB3,遇到一个问题,请教一下各位:

我现在的意图是为了达到更好的交互性需要捕捉到具体的信息,举个例子来说吧:

如果有外键关联在删除中就会出错,现在我要捕捉的就是那个外键KEY,但是在EJB3的EntityManager中却无法得得到那个ERROR,拿一个我的项目中测试的例子来看吧,如下面的信息:

17:24:02,140 WARN JDBCExceptionReporter SQL Error: 0, SQLState: null

17:24:02,140 ERROR JDBCExceptionReporter Batch entry 0 delete from T_CM_BASE_DICTTYPE where id=1 was aborted. Call getNextException to see the cause.

17:24:02,140 WARN JDBCExceptionReporter SQL Error: 0, SQLState: 23503

17:24:02,140 ERROR JDBCExceptionReporter ERROR: update or delete on "t_cm_base_dicttype" violates foreign key constraint "fk_t_cm_base_dictvalue_1" on "t_cm_base_dictvalue"

17:24:02,140 ERROR AbstractFlushingEventListener Could not synchronize database state with session

org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update

我现在只能得到

org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update

但是我相得到

update or delete on "t_cm_base_dicttype" violates foreign key constraint "fk_t_cm_base_dictvalue_1" on "t_cm_base_dictvalue"

本来在如果是在JDBC中执行SQL语句的话肯定可以捕捉得到的,但是在EJB3的EntityManager中却怎么也得不到

搞了我一天也没办法,不知道哪位大虾能帮下忙呀!!!!!

banq
2006-09-05 10:05

这就涉及容器的透明性,我们需要更透明可由我们定制的框架。