私の仕事では、プロジェクトで初めてHibernateを使用する必要があります。実際には、すべてが誰かによって設定されていましたが、今は「クエリ」を少し拡張する必要があります。 Tomcat v7.0サーバーがで実行しています。、Quartzフレームワークを使用して5分ごとにクエリをスケジュールします。このクエリは、Hibernateによって実行/処理されます。私はそのほとんどを理解していると思うが、私が言ったように:私はここでは初心者なので、この質問は本当に馬鹿だが、私はGoogle/StackOverflowを使って答えを見つけることができなかった。Hibernateをインスタンス化しようとしているときにSQLException(UnsupportedOperationException)が発生しました
hibernateのクエリ設定でいくつか変更して以来、私は常にnull
の結果を得ています。いくつかの苦労した後、私はログオンして実行しています。
30-apr-2012 11:02:32 org.hibernate.cfg.SettingsFactory buildSettings
WARNING: Could not obtain connection metadata
java.sql.SQLException: An SQLException was provoked by the following failure: java.lang.UnsupportedOperationException
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:65)
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:62)
at com.mchange.v2.c3p0.impl.NewPooledConnection.handleThrowable(NewPooledConnection.java:369)
at com.mchange.v2.c3p0.impl.NewProxyDatabaseMetaData.getDatabaseMajorVersion(NewProxyDatabaseMetaData.java:3692)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:126)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2863)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2859)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1870)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:753)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:691)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1390)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1359)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:540)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:485)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:170)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:268)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1274)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1042)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:485)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:170)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:268)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1274)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1042)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:485)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:170)
at com.mh2o.dbase.manager.HibernateDaoManager.getInstance(HibernateDaoManager.java:17)
at com.mh2o.dbase.wbuserlist.WelcomeBoardMgr.<init>(WelcomeBoardMgr.java:11)
at com.mh2o.application.cache.welcomeboard.WelcomeCache.synchronize(WelcomeCache.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:283)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:272)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
Caused by: java.lang.UnsupportedOperationException
at sun.jdbc.odbc.JdbcOdbcDatabaseMetaData.getDatabaseMajorVersion(Unknown Source)
at com.mchange.v2.c3p0.impl.NewProxyDatabaseMetaData.getDatabaseMajorVersion(NewProxyDatabaseMetaData.java:3678)
... 53 more
30-apr-2012 11:02:32 org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
ので、SQLにエラーがあるように表示されます。これは、Tomcatサーバーを起動するときに私が取得ログの(と思う)関連する部分です。さて、私はいくつかのファイルを追加したので、エラーが発生するのはその場所だと思います。
employeeavailablehours.hbm.xml(データベース内のテーブルを記述):
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.mh2o.application.vo.planningview" schema="N_C">
<class name="EmployeeAvailableHours" table="WerknemersBeschikbareUr">
<id column="ID" name="id" type="string">
<generator class="native"/>
</id>
<property column="InitialenWerknemer" name="initial" generated="never" lazy="false" not-null="true" type="string"/>
<property column="Vanaf" name="from" generated="never" lazy="false" not-null="true" type="string"/>
<property column="Tot" name="to" generated="never" lazy="false" not-null="true" type="string"/>
<property column="Volgnummer" name="indexnumber" generated="never" lazy="false" not-null="true" type="string"/>
</class>
</hibernate-mapping>
employeeinfoデータベースがすでに照会されたテーブルに接合することができるテーブル、私がやったことである含まれてい.hbm.xml(上記の表への参照を含めるために私が変更され、既に他の誰かによって作成):もちろん
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.mh2o.application.vo.planningview" schema="N_C">
<class name="EmployeeInfo" table="WerknemersInfo">
<id column="ID" name="id" type="string">
<generator class="native"/>
</id>
<property column="Naam" name="name" generated="never" lazy="false" not-null="true" type="string"/>
<property column="InitialenWerknemer" name="initial" generated="never" lazy="false" not-null="true" type="string"/>
<set name="employeeavailablehours" table="WerknemersBeschikbareUr" inverse="false" lazy="false" fetch="select">
<key>
<column name="InitialenWerknemer" not-null="true" />
</key>
<one-to-many class="EmployeeAvailableHours" />
</set>
</class>
</hibernate-mapping>
、私は新しいテーブルを追加した、employeeava ilablehoursをcontext.xml
に設定し、xmlファイルに名前を付けて新しいテーブルのデータを表すクラスを作成しました。さらに、私が追加したテーブルへの参照を保持するために、既存のテーブルを表すクラスを編集しました。私はこれがエラーの発生場所ではなく、例外を見ているわけではないと思うので、私はこれらのクラスのJavaソースをここに含めません。必要ならば、私はもちろんです。
詳細情報が必要な場合は、質問してください。質問を編集します。前もって感謝します!
jdbc-odbc bridgeを使用して、休止状態で接続していますか?このリンクが役立つかどうか確認してください。http://stackoverflow.com/questions/7289121/using-hibernate-via-an-odbc-connection – Kshitij
私が知る限り、我々はODBCを使用しません。 XMLファイルの変更を削除した場合、クエリが正しく機能するので、接続の問題ではないと思います。 –