为了账号安全,请及时绑定邮箱和手机立即绑定

无法在春季捕获休眠异常

无法在春季捕获休眠异常

慕丝7291255 2021-08-25 10:49:36
我是 Spring 框架的新手。使用 Spring 4.3 和 Hibernate 4 开发 Web 应用程序。我配置了所需的bean。<bean id="dataSource"    class="org.springframework.jdbc.datasource.DriverManagerDataSource">    <property name="driverClassName"        value="${oracle.driver-calss}" />    <property name="url" value="${oracle.Url}" />    <property name="username" value="${oracle.userName}" />    <property name="password" value="${oracle.password}" /></bean><bean id="sessionFactory"    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">    <property name="hibernateProperties">        <props>            <prop key="hibernate.dialect">${oracle.dialect}</prop>            <prop key="hibernate.hbm2ddl.auto">${oracle.hbm2ddl}</prop>            <prop key="hibernate.show-sql">${oracle.show-sql}</prop>        </props>    </property>    <property name="dataSource" ref="dataSource" />    <property name="packagesToScan" value="com.wmosIIBL.model"></property></bean><bean id="transactionManager"    class="org.springframework.orm.hibernate4.HibernateTransactionManager">    <property name="sessionFactory" ref="sessionFactory" /></bean><tx:annotation-driven />这是我的服务类@Servicepublic class ItemIBLService {    @Autowired    ItemIBLDaoImpl itemIBLDaoImpl;    @Transactional    public ItemInvnByLcn getItemIBLByDspLocn(String dspLocn) {        ItemInvnByLcn itemInvnByLcn = null;        try {            itemIBLDaoImpl.getIBLByDspLocn(dspLocn);        } catch (DataAccessException dataAccessException) {            System.out.println(dataAccessException.getMessage().toString());        }        return itemInvnByLcn;    }}DAO Impl 代码:我故意犯一些错误来创建异常。所以请忽略代码错误并帮助我找到如何捕获抛出的异常。
查看完整描述

2 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

org.hibernate.QueryParameterException不是DataAccessException(您试图捕获的那个)的子类,正如您在其javadoc 中看到的那样。如果您想捕获它,您应该将此异常添加到您的 catch 块中。这是一个RuntimeException,所以如果你忽略它像你这样的编译器不吭声。


试试这个:


try {

    itemIBLDaoImpl.getIBLByDspLocn(dspLocn);

} catch (DataAccessException | QueryParameterException exception) {

    System.out.println(exception.getMessage());

}


查看完整回答
反对 回复 2021-08-25
  • 2 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信