私はspring3.2.x + hibernate4.xの設定をxmlからjavaの設定に移行しようとしています。
HERESに既存のコードの抜粋:Hibernate SessionFactoryとSpring LocalSessionFactoryBean
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();
}
}
春のconfigファイルの
<!-- 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>
は、これが正常に動作します - しかし、どのように私はJavaでこの設定を再定義していますか?
相続人の試み -
@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ではありませんと呼ばれるものとしてコンパイル?
これをどのように調整しますか?
これはコンパイルされません。正確で完全なコンパイルエラーは何ですか? DAOを明示的に定義するのではなく、autowiringとclasspathスキャンを使用してみませんか? –
コム\データ\ CONFIG \ PersistenceConfig.java:32:com.data.dao.StockDaoImplでsetSessionFactory(org.hibernate.Sessi onFactoryが)には適用できない(org.springframewor k.orm.hibernate4.LocalSessionFactoryBean) DAO .setSessionFactory(sessionFactory()); – IUnknown