Disabling contextual LOB creation as createClob() method threw error : java.lang

Disabling contextual LOB creation as createClob() method threw error : java.lang

[摘要:實在只需看第一止就能夠了 at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:244) ,便是正在設置裝備擺設的時間出與到值。那末爲何出] 
 

其實只要看第一行就可以了 at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:244) ,就是在配置的時候沒取到值。那麼爲什麼沒取到值呢,是因爲Hibernate默認是使用jdbc方式來取的,如果使用連接池的方式的話,必須告訴Hibernate一聲,讓它不使用單純的JDBC連接。加入下面這一句話就可以了。

 Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.Invocation,同樣解決辦法

[html] view plaincopy Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.Invocation

  1. <prop key="hibernate.temp.use_jdbc_metadata_defaults">false</prop>  


這問題也困擾了我好幾個小時,下面貼出Hibernate的源碼來看一下。

 

 

package org.hibernate.engine.jdbc.internal;

 

[java] view plaincopy

  1. // 'hibernate.temp.use_jdbc_metadata_defaults' is a temporary magic value.  
  2. // The need for it is intended to be alleviated with future development, thus it is  
  3. // not defined as an Environment constant...  
  4. //  
  5. // it is used to control whether we should consult the JDBC metadata to determine  
  6. // certain Settings default values; it is useful to *not* do this when the database  
  7. // may not be available (mainly in tools usage).  
  8. final boolean useJdbcMetadata = ConfigurationHelper.getBoolean( "hibernate.temp.use_jdbc_metadata_defaults", configValues, true );  
  9. if ( useJdbcMetadata ) {  
  10.     try {  
  11.         final Connection connection = jdbcConnectionAccess.obtainConnection();  


大家可以看到,參數在取值的時候,它要先用useJdbcMetadata判斷一下,是不是JDBC方式,如果不把這個屬性設置爲false的話,那麼取值必然是取不到了,這就是空指針的原因。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章