Java Spring HibernateTemplate在运行时添加映射

Java Spring HibernateTemplate在运行时添加映射,java,spring,hibernate,Java,Spring,Hibernate,新的类和配置文件将打包在osgi包中 捆绑包中的服务类将注入带有Spring DM配置文件的Spring HibernateTemplate 我可以在运行时添加hibernate映射(映射文件、实体类)吗? hibernate.hbm2ddl.auto会工作吗 提前谢谢 假设您使用注释将VO映射到db table,下面是一些动态获取Spring HibernateTemplate的示例代码: AnnotationSessionFactoryBean sessionFactoryBean = ne

新的类和配置文件将打包在osgi包中

捆绑包中的服务类将注入带有Spring DM配置文件的Spring HibernateTemplate

我可以在运行时添加hibernate映射(映射文件、实体类)吗?
hibernate.hbm2ddl.auto会工作吗


提前谢谢

假设您使用注释将VO映射到db table,下面是一些动态获取Spring HibernateTemplate的示例代码:

AnnotationSessionFactoryBean sessionFactoryBean = new AnnotationSessionFactoryBean();
//set annotated classes.
sessionFactoryBean.setAnnotatedClasses(new Class<?>[]{VO1.class,VO2.class});
Properties props = new Properties();
//put all your hibernate configurations here

props.setProperty("dataSource.show_sql", "true");
props.setProperty("dataSource.dialect", "org.hibernate.dialect.MySQL5Dialect");
....
sessionFactoryBean.setHibernateProperties(props);

//Create DataSource Dynamically
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(...);
dataSource.setUrl(...);
dataSource.setUsername(...);
dataSource.setPassword(...);

sessionFactoryBean.setDataSource(ds);

//tell sessionFactoryBean that you are ready.
sessionFactoryBean.afterPropertiesSet();
SessionFactory sessionFactory = sessionFactoryBean.getObject();

HibernateTemplate template = new HibernateTemplate();
template.setSessionFactory(sessionFactory);
AnnotationSessionFactoryBean sessionFactoryBean=新的AnnotationSessionFactoryBean();
//设置带注释的类。
SetAnnotatedClass(新类[]{VO1.Class,VO2.Class});
Properties props=新属性();
//将所有的hibernate配置放在这里
props.setProperty(“dataSource.show_sql”,“true”);
setProperty(“dataSource.dialogue”、“org.hibernate.dialogue.mysql5dialogue”);
....
setHibernateProperties(道具);
//动态创建数据源
BasicDataSource数据源=新的BasicDataSource();
setDriverClassName(…);
setUrl(…);
setUsername(…);
dataSource.setPassword(…);
setDataSource(ds);
//告诉sessionFactoryBean您已经准备好了。
sessionFactoryBean.AfterPropertieSet();
SessionFactory SessionFactory=sessionFactoryBean.getObject();
HibernateTemplate=新的HibernateTemplate();
模板.setSessionFactory(sessionFactory);
我想你应该读一读。
它有很好的示例源代码,并解释了如何更新SessionFactory