2012-04-30 8 views
1

私の仕事では、プロジェクトで初めて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ソースをここに含めません。必要ならば、私はもちろんです。

詳細情報が必要な場合は、質問してください。質問を編集します。前もって感謝します!

+0

jdbc-odbc bridgeを使用して、休止状態で接続していますか?このリンクが役立つかどうか確認してください。http://stackoverflow.com/questions/7289121/using-hibernate-via-an-odbc-connection – Kshitij

+0

私が知る限り、我々はODBCを使用しません。 XMLファイルの変更を削除した場合、クエリが正しく機能するので、接続の問題ではないと思います。 –

答えて

1

私は完全に間違ったことをしていました。私が外部キーとして使用していたキーは、外部キーとして使用できませんでした。 1つのテーブルを他のテーブルに結合する場所の完全な設定を変更すると、問題が解決しました。

関連する問題