मैं एक xml से जावा कॉन्फ़िगरेशन से spring3.2.x + hibernate4.x सेटअप को स्थानांतरित करने की कोशिश कर रहा हूं।
यहाँ मौजूदा कोड का एक टुकड़ा:हाइबरनेट सत्र फ़ैक्टरी बनाम वसंत स्थानीय सत्र फ़ैक्टरीबीन
import org.hibernate.SessionFactory;
import org.hibernate.Query;
import org.hibernate.Session;
public class StockDaoImpl implements StockDao{
private SessionFactory sessionFactory;
public SessionFactory getSessionFactory() {
return sessionFactory;}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public void save(Stock stock){
Session session = getSessionFactory().openSession();
try{
session.save(stock);
}
finally{
session.close();
}
}
वसंत कॉन्फ़िग फ़ाइल
<!-- Stock Data Access Object -->
<bean id="stockDao" class="com.data.dao.StockDaoImpl" >
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="dataSource">
.....
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="hibernateProperties">
......
</property>
<property name="mappingResources">
.......
</property>
</bean>
यह ठीक काम करता है - लेकिन मैं कैसे इस config जावा में फिर से परिभाषित करते हैं?
यहाँ एक प्रयास -
@Bean
public StockDao stockDao() {
StockDaoImpl dao=new StockDaoImpl();
dao.setSessionFactory(sessionFactory());
return dao;
}
......
@Bean
public LocalSessionFactoryBean sessionFactory() {
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(restDataSource());
sessionFactory.setPackagesToScan(new String[] { .....});
sessionFactory.setHibernateProperties(hibernateProperties());
return sessionFactory;
}
लेकिन यह अभ्यस्त sessionFacotry के रूप में संकलित है वसंत के LocalSessionFactoryBean नहीं करने के लिए भेजा जा रहा है?
मैं इसे कैसे सुलझा सकता हूं?
के साथ एनोटेट किया गया है यह संकलित नहीं होगा: सटीक और पूर्ण संकलन त्रुटि क्या है? आप अपने डीएओ को स्पष्ट रूप से परिभाषित करने के बजाय ऑटोवॉयरिंग और क्लासपाथ स्कैनिंग का उपयोग क्यों नहीं करते? –
कॉम \ डेटा \ config \ PersistenceConfig.java: 32: setSessionFactory com.data.dao.StockDaoImpl में (org.hibernate.Sessi onFactory) को लागू नहीं किया जा सकता है (org.springframewor k.orm.hibernate4.LocalSessionFactoryBean) दाव .setSessionFactory (sessionFactory()); – IUnknown