1

有一种方法可以让我尝试进行更新操作;

public boolean formVeriGuncelleSil(String sql) throws VeritabaniException {
        try {
            Session session = getSessionFactory().getCurrentSession();
            SQLQuery query = session.createSQLQuery(sql);
            query.executeUpdate();
            return true;
        } catch (RuntimeException e) {
            throw new VeritabaniException(e, VERIGUNCELLEMEEXCEPTION, "FID_01_02_01");
        }
    }

sql字符串

UPDATE K1FORM_LISTGRID3 SET TEXTAREA4='X', TEXTT5='ANAFORM',ANATABLO='1', OLUSTURAN_KULLANICI='184' WHERE ID=1

如果 X 是很长的字符串,我有这个例外;

org.hibernate.exception.SQLGrammarException: could not execute native bulk manipulation query

如果 X 是普通字符串,也不例外。

如果 X 太长,则 X 字符串会出现异常。

我已经搜索过,但没有找到任何解决方案。请帮忙。

4

2 回答 2

1

解决方法是为您的TEXTAREA4.

如果您的输入是文件的内容,您可以使用blob而不是。String我相信在尝试批量更新时没有字符串这样的界限。

于 2013-04-30T08:54:13.110 回答
-1

调用createQuery()而不是createSQLQuery().

SQLQuery query = session.createQuery(sql);
于 2013-04-30T08:27:07.063 回答