spring - java.sql.SQLException : ORA-06576: not a valid function or procedure name 异常

标签 spring hibernate tomcat oracle11g

调用 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>

如有任何关于该问题的建议或解决方案,我们将不胜感激。

最佳答案

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>

关于spring - java.sql.SQLException : ORA-06576: not a valid function or procedure name 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34473301/

相关文章:

postgresql - Hibernate:重复键值违反唯一约束

java - Spring Tomcat 出现 Mysql 数据库错误

java - 理解java中的DI

java - 当票证为 SERVICE_TICKET_CREATED 时,CAS 重定向出错

xml - 在 .xml 文件中使用参数?

java - 为什么映射列表是空的?

java - 未定义 [javax.persistence.EntityManagerFactory] ​​类型的合格 bean

tomcat - AWS 中的系统属性

java - 如何修复无法在maven springmvc元素的maven构建中加载css文件

Java Logger 不轮换日志文件