作者lueichun (= =)
看板java
標題[問題] SpringORM的HibernateTransactionManager
時間Tue Dec 29 16:14:37 2020
※狀況概述:以下的程式是可以正常執行的,不過有些問題不是很懂:
※程式碼:
<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更精簡??
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.167.40.161 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1609229679.A.3E9.html
1F:→ ssccg: 不用configLocation吧,有dataSource就夠了 12/29 18:36
2F:推 GGing: 要更精簡改用 Spring Boot 吧! 12/30 07:16