【问题标题】:java.sql.SQLException: ORA-06576: not a valid function or procedure namejava.sql.SQLException: ORA-06576: 不是有效的函数或过程名称
【发布时间】:2016-04-01 02:37:23
【问题描述】:

saveDepartment() 被调用时,我得到了标题中提到的异常。在搜索了一段时间的解决方案后,我在 stackoverflow 上找到了另一个类似的帖子,它与我面临的问题场景不匹配。


道类:

@Repository
public class DepartmentDaoImpl implements DepartmentDao {

    @Autowired
    private SessionFactory sessionFactory;

    @Override
    @Transactional
    public void saveDepartment(Department department) {
        Session session = sessionFactory.getCurrentSession();
        session.save(department);
    }
}

hibernate 的 Bean 配置部分:

 <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="packagesToScan" value="net.therap.domain.tmp"/>
        <property name="dataSource" ref="dataSource" />
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect"> org.hibernate.dialect.HSQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
            </props>
        </property>
    </bean>

    <bean id="transactionManager"
          class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

感谢任何有关该问题的建议或解决方案。

【问题讨论】:

  • 你在使用oracle吗?如果是这样,为什么您添加了 HSQL 方言?添加更多细节(堆栈跟踪,...)

标签: spring hibernate tomcat oracle11g


【解决方案1】:

ORA-06576 错误代码和oracle11g 标记表明您正在使用 Oracle 11g 数据库。

Hibernate 的Oracle10gDialect 与该版本兼容,因此您应该使用以下方言配置:

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="packagesToScan" value="net.therap.domain.tmp"/>
    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
</bean>

<bean id="transactionManager"
      class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

【讨论】:

  • 我正在从 mysql 切换到 oracle,这是我不应该错过的非常重要的事情。感谢 mkierc 的快速而中肯的响应
猜你喜欢
  • 2021-03-25
  • 1970-01-01
  • 2022-01-09
  • 2012-03-23
  • 1970-01-01
  • 2019-05-09
  • 1970-01-01
  • 2020-08-26
  • 1970-01-01
相关资源
最近更新 更多