2015-08-19 216 views
0

让我说我有以下代码。休眠配置文件

private static String configFile = null; 


    File cf = new File(configFile); 
    Configuration c = new Configuration(); 
    if (cf.exists() && cf.isFile()) { 
      c.configure(cf); 
     } else { 
      c.configure(configFile); 
    } 

我想知道是什么c.configure(cf)c.configure(configFile)之间的差异。在我的代码中,configFile被认为是资源,cf是configFile对象。

我发现这两个(api)。

public Configuration configure(String resource) 
         throws HibernateException 

public Configuration configure(File configFile) 
         throws HibernateException 

回答

0

API的文档没有明确说明,是吗?

我跟踪它,只要这个类厌烦之前:

https://github.com/hibernate/hibernate-orm/blob/master/hibernate-core/src/main/java/org/hibernate/boot/cfgxml/internal/ConfigLoader.java

但它看起来像在配置(字符串资源)的情况下,这是一种资源的名称将被传递Java类加载器来获取资源作为流,即:

http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String)

然而,配置(文件CONFIGFILE),它使用一个FileInputStream。

在任何一种情况下,Hibernate仍然期望配置使用相同的XML格式。