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
- <prop key="hibernate.temp.use_jdbc_metadata_defaults">false</prop>
這問題也困擾了我好幾個小時,下面貼出Hibernate的源碼來看一下。
package org.hibernate.engine.jdbc.internal;
[java] view plaincopy
- // 'hibernate.temp.use_jdbc_metadata_defaults' is a temporary magic value.
- // The need for it is intended to be alleviated with future development, thus it is
- // not defined as an Environment constant...
- //
- // it is used to control whether we should consult the JDBC metadata to determine
- // certain Settings default values; it is useful to *not* do this when the database
- // may not be available (mainly in tools usage).
- final boolean useJdbcMetadata = ConfigurationHelper.getBoolean( "hibernate.temp.use_jdbc_metadata_defaults", configValues, true );
- if ( useJdbcMetadata ) {
- try {
- final Connection connection = jdbcConnectionAccess.obtainConnection();
大家可以看到,參數在取值的時候,它要先用useJdbcMetadata判斷一下,是不是JDBC方式,如果不把這個屬性設置爲false的話,那麼取值必然是取不到了,這就是空指針的原因。