【发布时间】:2016-11-21 02:53:05
【问题描述】:
我在我的网络项目中使用休眠。我在createSQLQuery(queryString) 中执行String 的这一行。下面是我在queryString中分配的值:
DROP TABLE monthlyevaluatedbudgettabletemp;
DROP TABLE monthlyadjustedbudgettabletemp;
CREATE TABLE monthlyevaluatedbudgettabletemp (budgetid bigint NOT NULL,
approvedbudget numeric(19,2),
april numeric(19,2),
august numeric(19,2),
budgetforyear bigint NOT NULL,
december numeric(19,2),
february numeric(19,2),
january numeric(19,2),
july numeric(19,2),
june numeric(19,2),
march numeric(19,2),
may numeric(19,2),
november numeric(19,2),
october numeric(19,2),
september numeric(19,2),
branchid integer,
accountid bigint,
budgetlastyear bigint);
CREATE TABLE monthlyadjustedbudgettabletemp (adjustedid bigint NOT NULL,
april numeric(19,2),
august numeric(19,2),
december numeric(19,2),
february numeric(19,2),
january numeric(19,2),
july numeric(19,2),
june numeric(19,2),
march numeric(19,2),
may numeric(19,2),
november numeric(19,2),
october numeric(19,2),
september numeric(19,2),
yeartodatemonth character varying(255),
budgetid bigint);
INSERT INTO monthlyevaluatedbudgettabletemp SELECT * FROM monthlyevaluatedbudgettable where budgetforyear=2017;
INSERT INTO monthlyadjustedbudgettabletemp SELECT a.* from monthlyadjustedbudgettable as a join monthlyevaluatedbudgettable as e on a.budgetid=e.budgetid where e.budgetforyear = 2017
UPDATE monthlyevaluatedbudgettabletemp SET budgetforyear=2017,budgetlastyear=2016,april=0.00,approvedbudget=0.00,august=0.00,february=0.00,january=0.00,july=0.00,june=0.00,march=0.00,may=0.00,november=0.00,october=0.00,september=0.00,december=0.00;
UPDATE monthlyadjustedbudgettabletemp SET january=0.00,february=0.00,march=0.00,april=0.00,may=0.00,june=0.00,july=0.00,august=0.00,september=0.00,november=0.00,
october=0.00,december=0.00;
现在当我使用createSQLQuery(queryString).executeUpdate(); 运行它时。我遇到了这种错误。
org.hibernate.exception.SQLGrammarException: could not execute native bulk manipulation query
现在我的问题是,有没有一种方法可以一次性处理查询字符串。还是我必须将每个查询语句分开并一一执行。这就像我想在休眠中执行一个.sql 文件。
【问题讨论】:
-
Hibernate multiple native SQL statements 我猜你需要一个一个地运行这些查询。
-
为什么要使用休眠进行此类操作?请使用 JDBC
标签: java sql postgresql hibernate