dwt0317 2014-07-29 03:07 采纳率: 0%
浏览 1854

hibernate框架 使用sql语句 select count查询不到。。

代码如下:

    String sql = "select count(servId) from "+set;      
    sess=sessionFactory.openSession();
    tx=sess.beginTransaction();

    Query query = sess.createSQLQuery(sql);
    BigDecimal count = (BigDecimal)query.uniqueResult();
    totalProperty= count.intValue();
    tx.commit();
    sess.close();

set是个变量,是我一个表的名称。因为这个表没有类与之关联所以打算用sql语句进行查询,但是。。。查不到,报错

数据库连接没有问题,因为我对有类关联的表用select count 是可以的,但这个为什么不好使啊。。别的原生语句insert,delete什么都可以啊。。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 09:40
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    你可能遇到了一些问题,比如:

    1. SQL语法错误:你的SQL查询中可能存在语法错误,例如缺少分号或者括号不匹配等。

    2. 没有正确的引用:如果你使用的是Hibernate 4.x版本,你需要在SessionFactory创建之前设置sessionFactory属性。

    3. 数据库配置问题:确保你的数据库连接和sessionfactory都是有效的。

    下面是一个修复这些问题的例子:

    // 假设你已经设置了sessionFactory属性
    Session session = sessionFactory.getCurrentSession();
    try {
        // 创建SQL查询
        String sql = "SELECT COUNT(servId) FROM " + set;
        
        // 执行SQL查询
        Query query = session.createSQLQuery(sql);
    
        // 获取结果并转换为BigDecimal类型
        BigDecimal count = (BigDecimal) query.uniqueResult();
    
        // 设置totalProperty属性
        totalProperty = count.intValue();
    
    } finally {
        // 关闭session
        session.close();
    }
    

    如果这些步骤仍然无法解决问题,请提供更多关于你的环境、数据库信息以及具体的错误消息,这样我才能提供更详细的帮助。

    评论

报告相同问题?