2015-08-19 111 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格式。