ing[] cparr = cp.split("\\:"); for(int j=0;j<cparr.length;j++){ // The following assumes our entities // are wrapped up in a jar file // called 'dbobjs.jar' if(cparr[j].indexOf("dbobjs.jar") != -1) jarFile=(cparr[j]); } if(jarFile != null){ JarFile jar = new JarFile(new File(jarFile)); Enumeration e = jar.entries(); if(e.hasMoreElements()) { hbmList = new ArrayList(); while(e.hasMoreElements()){ // Object comes back as JarFile$JarFileEntry JarEntry entry = (JarEntry)e.nextElement(); if(entry.getName().indexOf(".hbm.xml") != -1) { hbmList.add(entry.getName()); } } }else { System.out.println("Error: The entity jar dbobjs.jar was not found in " + "classpath: " + cp); } } 上面的代码主要完成了以下几件事情:获取Java虚拟机初始化的classpath系统属性;查找含有实体映射文件的jar包;解析映射文件的名字,然后添加到一个ArrayList对象中去。当我们的ArrayList对象装满了实体映射的名字后,就可以将其传递到Hibernate Configuration 对象,如下所示:
清单5:
Configuration cfg = new Configuration(); Iterator iterator = hbmFileNames.iterator(); while(iterator.hasNext()){ cfg.addResource((String)iterator.next()); }
只要我们在Hibernate Session 对象里配置好正确的映射关系,我们就可以将实体拿来使用了。
使用Session
关于这一点,你可以参考关于Hibernate和持久层的文章或者指南,也可以查询 上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
|