当前位置: 首页 > 知识库问答 >
问题:

用Spring调用Hibernate时面临的问题

梁丘宏硕
2023-03-14
package org.java.dao;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.java.spring.dataModel.Circle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
@Repository
public class HibernateDao {
    @Autowired
    private SessionFactory sessionFactory;


    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }


    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }


    public int getCircleCount(){

        String hql="Select count(*) from circle";
        Query query=getSessionFactory().openSession().createQuery(hql);
     return ((Long)query.uniqueResult()).intValue();

    }

}

package org.java.Main;

import org.java.dao.HibernateDao;
import org.java.spring.dataModel.Circle;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class HibernateDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        ApplicationContext ctx= new ClassPathXmlApplicationContext("spring.xml");
        HibernateDao dao=ctx.getBean("hibernateDao",HibernateDao.class);
        System.out.println("Circle is:"+dao.getCircleCount());


    }

}

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:annotation-config />
    <context:component-scan base-package="org.java.dao" />

    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="org.postgresql.Driver"></property>
        <property name="url" value="jdbc:postgresql://localhost:5432/hibernatedb"></property>
        <property name="username" value="postgres"></property>
        <property name="password" value="****"></property>
        <!--
            <property name="initialSize" value="2"></property> <property
            name="maxActive" value="5"></property>
        -->
    </bean>

    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="packagesToScan" value="org.java.dao" />
        <property name="hibernateProperties">
            <props>
                <prop key="dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
            </props>
        </property>

    </bean>

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


    </beans>

共有1个答案

龚弘业
2023-03-14

您编写的是HQL查询,而不是SQL查询。语法类似,但在HQL查询中使用映射类型。在本例中,由于映射的类型显然是circle,请尝试以下操作:

从循环c中选择计数(c)

正如异常所示,circle不是映射类型,这是有意义的。

 类似资料:
  • 我试图在Spring3.1.5上用AOP实现日志记录。但在运行时,我会得到以下异常 下面是我的aspect类的详细信息: 伙计们,我真的被这个困住了,我也是Aop的新手,请帮我解决这个问题!!!

  • 该应用程序没有针对/error的显式映射,因此您将其视为一种后退。 美国东部时间2017年12月11日上午10:19:54出现意外错误(类型=不可接受,状态=406)。找不到可接受的表示

  • 我读了很多关于我的问题的文件,但建议不能解决我的问题,所以我被迫打开这个主题。 我的问题是,当我试图保存我的实体时,我遇到了以下错误。我添加了实体类。谢谢 保存代码 员工表 员工上传表

  • 上下文初始化过程中遇到异常-取消刷新尝试:org.springframework.beans.factory.unsatisfieddependencyexception:创建名为“rabbit MQController”的bean时出错:通过字段“records reprositry”表示的不满足的依赖关系;嵌套异常为org.springframework.beans.factory.NoSuc

  • “stack_trace”:“org.springframework.jdbc.uncategorizedsqlexception:CallableStatementCallback;SQL[{call post_cycle_tfo_stat_pkg.insert_cycle_status(?,?,?,?)}]得SQLException未分类;SQL状态[99999];错误代码[17004];无效

  • 问题内容: 我一直在使用Spring JDBC取得了巨大的成功,但是我在这个项目中遇到了很多麻烦。我将在此处发布代码链接(这是一个小而愚蠢的项目,用于测试是否可以启动并运行它,以便将来可以使用Hibernate): xml文件:http://codepaste.net/uw19zc 主文件:http : //codepaste.net/iks1cp 我遇到很多错误,例如 而且我还没有创建一个.ou