我有一个场景,用户提交基金和证券的订单。如果他使用相同的基金提交另一个订单,安全数据库会返回SqlIntegrityVoilationException
错误代码ora-00001
。
但我的问题是这个例外不会被java.sql.sqlintegrityconstraintviolationexception
抓住。我能够在org.springframework.dao.DataIntegrityViolationException
下捕获此信息,但我无法检索错误代码(检查ora-00001
)。
任何人都有任何想法如何捕获该异常并检索错误代码以进行检查,以便我可以放回一个自定义错误消息,例如"您无法提交相同基金和安全组合的重复订单"。
catch (SQLException e) {
ex = e; inOrder.setActionMessage(ex.getMessage());
}
catch (DataIntegrityViolationException e) {
ex = e; inOrder.setActionMessage(ex.getMessage());
}