1

休止状態 4.1 に移行し、Oracle 11g のサポートも追加しています。4.1 への移行は mysql のセットアップでうまくいったようで、Oracle 固有の問題をデバッグしています。オラクルが不平を言う問題があります

java.sql.SQLException: ORA-00903: invalid table name

このセットアップは c3p0 と ehcache も使用していることに言及する必要があります。

この例外の原因となるクエリは次のとおりです。

DEBUG org.hibernate.SQL  - 

select
    dp.id as id168_,
    dp.Description as Descript2_168_,
    dp.name as name168_,
    case 
        when dp1_.id is not null then 1 
        when dp2_.id is not null then 2 
        when dp.id is not null then 0 
    end as clazz_ 
from
    .tableA dp 
left outer join
    .tableB dp1_ 
        on dp.id=dp1_.id 
left outer join
    .tableC dp2_ 
        on dp.id=dp2_.id

SQL Developer でこのクエリを試しましたが、失敗しました。問題は「。」にあるようです。テーブル名に。これを削除するか、クエリの前に db user/schema を配置すると問題ありません。

この表記をオフにする設定はありますか?必要なプロパティを提供していませんか?

<properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
        <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
        <property name="hibernate.connection.username" value="myUser"/>
        <property name="hibernate.connection.password" value="myPassword"/>
        <property name="hibernate.connection.url" value="jdbc:oracle:thin://@192.168.X.X:1521:oracledb"/>
        <property name="hibernate.archive.autodetection" value=""/>

        <property name="hibernate.format_sql" value="true"/>
        <property name="hibernate.show_sql" value="true"/>
        <property name="hibernate.default_schema" value="public"/>

        <property name="hibernate.ejb.cfgfile" value="META-INF/hibernate.cfg.xml"/>

        <!-- cache configuration -->
        <property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory" />
        <property name="hibernate.cache.use_second_level_cache" value="true"/>
        <property name="hibernate.cache.use_query_cache" value="true"/>

        <!-- pool configuration -->
        <property name="hibernate.connection.provider_class" value="org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider" />
        <property name="hibernate.c3p0.max_size" value="50" />
        <property name="hibernate.c3p0.min_size" value="5" />
        <property name="hibernate.c3p0.acquire_increment" value="1" />
        <property name="hibernate.c3p0.idle_test_period" value="17" />
        <property name="hibernate.c3p0.max_statements" value="0" />
        <property name="hibernate.c3p0.timeout" value="3600" />
        <property name="hibernate.c3p0.preferredTestQuery" value="SELECT 1 FROM DUAL"/>

    </properties>
4

1 に答える 1

0

この問題は

<property name="hibernate.default_schema" value="public"/>

この値は、作成したスキーマと一致する必要があります。

ctapobep のコメントは、この問題の特定に役立ちました。

于 2012-12-05T17:09:16.737 に答える