Compass 交流

meimer 2007-08-06
最近在学习compass,有一点认识也有一点迷糊?想和大家交流一下。
compass 封装了spring和hibernate,对于事务的管理和支持清晰可见,可是封装了hibernate,我却突然间不会用hibernate了,不知道如何使用它封装后的hibernate进行数据库操作了,虽然CompassGps 允许装载多个Device,并且允许多个设备并发运行,可是装载的时候感觉又回到了原始的hiberna状态:如下代码:
CompassGps gps = new SingleCompassGps(compass);
CompassGpsDevice hibernateDevice =new Hibernate3GpsDevice   
         ("hibernate", sessionFactory);
gps.addGpsDevice(hibernateDevice);
gps.start();
如果上面的sessionFactory是来自hibernate,那么封装的意义何在?我们又如何使用这个device 进行数据库操作呢?

原来以为这段代码既会更改索引,又会操作数据库,

ApplicationContext context = IOC.getContext();
Compass compass = (Compass) context.getBean("compass");
CompassSession session = compass.openSession();
  CompassTransaction ct = session.beginTransaction();
Article ar=new Article();
ar.setArticleId(4);
ar.setArticleTitle("简化asdf");
ar.setContent("jslakdj沃尔特flhdf");
ar.setKeyList("afsdkfj沃尔特 沃软巍峨巍峨k");
session.save(ar);
ct.commit();


结果他只是根据对象生成了索引而已,并没有将数据插入数据库,真是得,难道搜索引擎就可以完全抛弃关系数据库吗?

希望那位高手能够仔细解释一下?compass为什么要装载device,以及装载之后如何使用?特别是对关系数据库的操作?