1. ホーム
  2. ジャワ

は、タイプ 'org.hibernate.SessionFactory' のビーンが必要ですが、見つかりませんでした。

2022-02-22 16:07:28

SpringBootのプロジェクトを書いたのですが、その際に

@Repository 
public class xxDaoImpl implements xxDao {
    @Autowired
    private SessionFactory session;

次のようなエラーが発生します。

***************************
APPLICATION FAILED TO START
***************************

Description:

Field session in xx.dao.ParkingSpaceDaoImpl required a bean of type 'org.hibernate.SessionFactory' that could not be found.


Action:

Consider defining a bean of type 'org.hibernate.SessionFactory' in your configuration.

そこで、私に合った解決策を見つけました。.xml設定ファイルを使っているので、おそらくこの書き方が正しいのでしょう。しかし、application.propertiesファイルを使用している人は、この行を設定クラスまたはメインアプリケーションクラスに追加する必要があります。
@Bean  
public SessionFactory sessionFactory(HibernateEntityManagerFactory hemf){  
    return hemf.getSessionFactory();  
}   

または

@Bean
    public HibernateJpaSessionFactoryBean sessionFactory() {
        return new HibernateJpaSessionFactoryBean();
    }








終了したら、application.properties 設定ファイルに以下を追加します。

spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate4.

この設定で、プロジェクトは正常に起動し、sessionFactoryも正常に作成されます。もし、同じ問題に遭遇した場合、お役に立てれば幸いです。
<テーブル
お気に入り


<テーブル