[问题] SpringORM的HibernateTransactionManager

楼主: lueichun (no anonymous)   2020-12-29 16:14:37
※状况概述:以下的程式是可以正常执行的,不过有些问题不是很懂:
※程式码:
<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
<property name="dataSourceName" value="ds"/>
<property name="URL" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
<property name="user" value="cuser"/>
<property name="password" value="cuser"/>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml" />
<property name="dataSource"><ref bean="dataSource"/></property>
</bean>
<tx:annotation-driven/>
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" >
<ref bean="sessionFactory" />
</property>
</bean>
※错误讯息:无,可正常执行。
※补充说明:就是sessionFactory必须同时吃到configLocation与dataSource这两个属性
才能正常执行,若是没加入dataSource这个属性就执行的话,会跳出
Error creating bean with name 'transactionManager'
org.hibernate.service.UnknownUnwrapTypeException: Cannot unwrap to requested
type [javax.sql.DataSource]
所以变成需要同时添加两个类似的属性才能work,可是这样感觉code就变得很冗
毕竟configLocation与dataSource这两个属性的内容有重复
那请问还可以怎么写,才能让code更精简??
作者: ssccg (23)   2020-12-29 18:36:00
不用configLocation吧,有dataSource就够了
作者: GGing (小轩轩)   2020-12-30 07:16:00
要更精简改用 Spring Boot 吧!

Links booklink

Contact Us: admin [ a t ] ucptt.com