hibernate延迟加载:hibernate annoation (一加载)

  ,配置文件加载

  1Configuration

  如果不是annoation则可以使用Configuration configuration = Configuration

  使用annoation则可以使用Configuration configuration = AnnotationConfiguration;

  2加载使用onfigurationconfigure思路方法根据思路方法参数可以有下几种加载方式:

  (1) configure

  吃思路方法会去path下寻找我们配置文件

  其实了configure( "/hibernate.cfg.xml" );也就是 configure(String resource);思路方法

  (2) configure(String resource);

  最常用方思路方法其实了doConfigure(InputStream stream, String resourceName);

  介绍说明点内部代码:

  ConfigHelper.getResourceAsStream( resource );

  Java代码   

 String stripped = resource.startsWith("/") ? 
  resource.sub(1) : resource; 
 
 InputStream stream = null; 
 ClassLoader Loader = Thread.currentThread.getContextClassLoader; 
  (Loader!=null) { 
  stream = Loader.getResourceAsStream( stripped ); 
 } 
  ( stream  null ) { 
  stream = Environment..getResourceAsStream( resource ); 
 } 
  ( stream  null ) { 
  stream = Environment..getClassLoader.getResourceAsStream( stripped ); 
 } 
  ( stream  null ) { 
  throw  HibernateException( resource + " not found" ); 
 } 
  stream; 


  第行高数我们"/hibernate.cfg.xml" 可以去掉前面“/”其中了Thread.currentThread.getContextClassLoader;般也就是我们AppClassLoader

  由stream = Environment..getResourceAsStream( resource );可以看出我们"/hibernate.cfg.xml同样可以放在和和Environment同样目录具体到我们代码里面在使用(3)(4)(5)时可以放在加载 类包内或其他

  (3) configure(URL url);

  doConfigure( url.openStream, url.toString );(5)

  (4) configure(File configFile);

  doConfigure( FileInputStream( configFile ), configFile.toString );(5)

  (5) doConfigure(InputStream stream, String resourceName);

  使用dom4j解析文件为Document然后

  xmlHelper.createSAXReader( resourceName, errors, entityResolver )

  .read( InputSource( stream ) );

  掉用

  (6) configure(Document document);

  在这个思路方法里会解析所有配置信息和mapping类或者hb文件

Tags:  hibernate一对一 hibernate一对多 hibernate延时加载 hibernate延迟加载

延伸阅读

最新评论

发表评论