2017-07-10 20 views
0

こうして作成されたsessionfactory beanを取得できました。Spring Boot + Hibernateには依存関係jarのhbm.xmlが含まれています

@Configuration 
public class HibernateConfig { 

    private EntityManagerFactory emf; 

    @Bean 
    public HibernateJpaSessionFactoryBean sessionFactory() { 
     HibernateJpaSessionFactoryBean fact = new HibernateJpaSessionFactoryBean(); 
     fact.setEntityManagerFactory(emf); 
     return fact; 
    } 

    @Autowired 
    public HibernateConfig(EntityManagerFactory emf) { 
     this.emf = emf; 
    } 

} 

しかし、ジャーにクラスパスに@ImportResourceまたは@EntityScanを使用するかのhbm.xmlファイルをリストまだ私はあなたがSessionFactoryのBeanを生成するために、別のクラスを使用していくつかの回答を参照してくださいnot a managed type: class com.opensymphony.workflow.spi.hibernate.HibernateCurrentStep

が得られます。エンティティマネージャの作成に含まれるマッピングファイルを簡単に取得する方法はありますか?

私は

@Bean 
public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) { 
    LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); 
    em.setDataSource(dataSource); 
    em.setPackagesToScan("com.foo.bar.domain"); 

    em.setMappingResources("classpath:x/HibernateCurrentStep.hbm.xml", 
    "classpath:x/HibernateHistoryStep.hbm.xml", 
    "classpath:x/HibernateWorkflowEntry.hbm.xml"); 

    HibernateJpaVendorAdapter vendor = new HibernateJpaVendorAdapter(); 
    vendor.setShowSql(false); 
    em.setJpaVendorAdapter(vendor); 
    return em; 
} 

でのhbm.xmlファイルをスキャンすることができましたが、基本的な春のレポ方法はまだ動作している間、セッションファクトリを使用するすべてのトランザクションがNo CurrentSessionContext configured!を取得します。

答えて

0
@Bean 
public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) { 
    LocalContainerEntityManagerFactoryBean em = new 
    LocalContainerEntityManagerFactoryBean(); 
    em.setDataSource(dataSource); 
    em.setPackagesToScan("com.foo.bar.domain"); 

    em.setMappingResources("com/opensymphony/workflow/spi/hibernate3/HibernateCurrentStep.hbm.xml", 
    "com/opensymphony/workflow/spi/hibernate3/HibernateHistoryStep.hbm.xml", 
    "com/opensymphony/workflow/spi/hibernate3/HibernateWorkflowEntry.hbm.xml"); 
    //these needed to be added to have all hibernate config done in one place. 
em.getJpaPropertyMap().put(AvailableSettings.CURRENT_SESSION_CONTEXT_CLASS, 
     SpringSessionContext.class.getName()); 
em.getJpaPropertyMap().put(AvailableSettings.DIALECT, 
     PostgreSQL9Dialect.class.getName()); 

    HibernateJpaVendorAdapter vendor = new HibernateJpaVendorAdapter(); 
    vendor.setShowSql(false); 
    em.setJpaVendorAdapter(vendor); 
    return em; 
} 
関連する問題