osgi 环境下 hibernate 4 配置

准备将公司的老应用迁移到OSGI karaf平台上。很吐血的一点就是hibernate。 这玩意,真是超级麻烦的一个工程。
classload是最头痛的一个问题。在Hibernate4上利用注册服务的方式 实现了 classloader的代理。
顺便提一句想用Hibernate3做reloadclass的同学们别妄想了。

除非是改源码。

标签: Hibernate Karaf

[1].[代码] 核心代码创建 SessionFactory 跳至 [1]

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
      * Rebuild hibernate session factory
      *
      */
     public static void rebuildSessionFactory() {
         try {
             // create a BootstarpRegistry
             BootstrapServiceRegistry bootstrapServiceRegistry = new BootstrapServiceRegistryBuilder()
             // pass in a class-loader Hibernate should use to load application
             // classes
                     .withApplicationClassLoader(org.postgresql.Driver. class .getClassLoader())
                     // pass in a class-loader Hibernate should use to load
                     // resources
                     .withResourceClassLoader(HibernateSessionFactory. class .getClassLoader()).build();
 
             // create a ServiceRegistry
             ServiceRegistryBuilder registryBuilder = new ServiceRegistryBuilder(bootstrapServiceRegistry);
 
             // clear
             configuration = new Configuration();
             // read config
             URL u = HibernateSessionFactory. class .getClassLoader().getResource(configFile);
             configuration.configure(u);
             registryBuilder.applySettings(configuration.getProperties());
             // build ServiceRegistry
             ServiceRegistry serviceRegistry = registryBuilder.buildServiceRegistry();
 
             // create SessionFactory
             sessionFactory = configuration.buildSessionFactory(serviceRegistry);
         } catch (Exception e) {
             System.err.println( "%%%% Error Creating SessionFactory %%%%" );
             e.printStackTrace();
         }
     }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值