hibernate查询不工作

vlf7wbxs  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(304)

我试图用query更新数据库中的一行,但我不知道为什么它不起作用。
我用这个方法:

@Override
    public void updateImage(String avatar, int employeeId) {
        Session session = HibernateUtil.getSessionFactory().openSession();

        try {
            Transaction transaction = null;

            Query query = session.createQuery("UPDATE vt_employee SET emp_avatar=? WHERE id_employee=?");
            query.setString(0, avatar);
            query.setInteger(1, employeeId);

            transaction = session.beginTransaction();
            query.executeUpdate();
            transaction.commit();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            session.clear();
        }
    }

我的值avatar和employeeid当然不是null或空的,我通过控制台中的display检查了它。我在db中的表是vt\u employee,存在emp\u avatar和id\u employee等字段。我检查了问题所在的位置,问题在createquery中,如果我尝试在session.createquery之前显示参数,那么它们会显示在控制台中,但在这一行之后就不会了。
有人能帮忙解决这个问题吗?

t0ybt7op

t0ybt7op1#

你能试试这个吗。

public void updateImage(String avatar, int employeeId) {
    String hql = "UPDATE vt_employee set emp_avatar =:avatar WHERE id_employee =:employeeId";
    Query query = sessionFactory.getCurrentSession().createQuery(hql);
    query.setParameter("avatar",avatar);
    query.setParameter("employeeId",employeeId);
            int i = query.executeUpdate();
    if (i > 0) {
        System.Out.println("Updated..") ;
    }
}

相关问题