.sql ファイルを読み取り、休止状態で実行することにより、生成されたクエリに問題があります。
エラー生成の手順: .sql ファイルを読み取ります。--> hibernate の SQLQuery オブジェクトを作成します。-->クエリを実行します。休止状態セッションが存在すると仮定して、このスニペットに従ってください。私は hibernate 4.2.0.1.Final と Spring の 3.2.1.RELEASE バージョンを使用しています。
// optimization.sql is having 1500 lines of Indexes script...
private static String resource = "/com/iqx/storage/queries/optimization.sql";
InputStream is = ExcelResourceReader.class.getResourceAsStream(resource);
BufferedReader bf = new BufferedReader(new InputStreamReader(is));
StringBuffer sb = new StringBuffer();
while ((str = bf.readLine()) != null) {
sb.append(str + "\n");
}
bf.close();
SQLQuery query = session.createSQLQuery(sb.toString());
query.executeUpdate();
これは、"optimization.sql" の 1 つのインデックスの例にすぎません。ファイルには約 100 のインデックスがあります
IF EXISTS (SELECT name FROM SYS.INDEXES WHERE NAME = N'QBI_TIDX')
DROP INDEX [QBI_TIDX] ON [ABSTRACT_TABLE]
GO
CREATE NONCLUSTERED INDEX [QBI_TIDX] ON [ABSTRACT_TABLE]
(
[QUOTE_FK] ASC,
[ID] ASC
)
INCLUDE ( [VERSION],
[DESCRIPTION]) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]
GO
エラー: "12:04:10.996 [main] WARN ohejdbc.spi.SqlExceptionHelper - SQL エラー: 102、SQLState: S0001 12:04:10.996 [main] ERROR ohejdbc.spi.SqlExceptionHelper - 'GO' 付近の構文が正しくありません。"
しかし、SQLServer Studio を使用して生成された出力 (Stringbuffer) を実行すると、この問題は発生しません。
誰かがアイデアを持っている場合は、ガイドしてください。前もって感謝します。