我的Hibernate配置有什么问题?

时间:2013-12-25 21:42:17

标签: oracle hibernate oracle11g

我有一个使用Spring + JSF + PrimeFaces + Hibernate + MySQL的应用程序,所以我被告知我需要将数据库从MySQL迁移到Oracle,我做到了。 因此,当我测试应用程序时,我发现hibernate创建的一些查询无效。

例如我的应用程序有这样的查询:

select U.ID from usuarios U 并且使用mysql它可以工作,但是使用oracle 11g它告诉我它无法找到表或视图。 所以我用sql developer测试它,使它工作的唯一方法是将它改为:

select U.ID from "ROOT"."usuarios" U

那么现在应该如何配置hibernate,以便创建像我的第二个查询而不是第一个查询的查询?

这是我的hibernate配置:

    <bean id="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass" value="oracle.jdbc.driver.OracleDriver" /> 
    <property name="jdbcUrl" value="jdbc:oracle:thin:@127.0.0.1:1521:xe" />
    <property name="user" value="user" />   
    <property name="password" value="pass" />   
    <property name="maxPoolSize" value="50" />
    <property name="maxStatements" value="0" />
    <property name="minPoolSize" value="5" /> 
</bean>    
<bean id="SessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource">
        <ref bean="dataSource" />
    </property>
    <property name="annotatedClasses">
        <list>
            <value>com.proximate.model.Usuarios</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <!--prop key="hibernate.use_sql_comments">true</prop-->
            <prop key="hibernate.format_sql">true</prop>                         
        </props>
    </property>
</bean>

2 个答案:

答案 0 :(得分:1)

您可以使用架构所属的用户登录,在本例中为“ROOT”,这样您就不需要在表名之前键入架构的名称。

答案 1 :(得分:0)

如果用户名!=架构所有者,则需要设置hibernate.default_schemadocs)。

<bean id="SessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    ...
    </property>
    <property name="hibernateProperties">
        <props>
            ...
            <prop key="hibernate.default_schema">your-schema-name</prop>
        </props>
    </property>
</bean>