Hibernateに次の名前付きクエリがあります:
<sql-query name="CreateLogTable">
CREATE TABLE IF NOT EXISTS :tableName (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`url` VARCHAR (750) NOT NULL,
`query` VARCHAR (500),
`ipaddress` VARCHAR (39),
`datetime` DATETIME NOT NULL,
`hits` MEDIUMINT UNSIGNED DEFAULT '0' NOT NULL,
`path_id` VARCHAR (8),
PRIMARY KEY(`id`),
UNIQUE(`id`),
INDEX(`id`,`query`,`datetime`,`path_id`)
) TYPE = MyISAM
</sql-query>
次に、次の行を使用してこの行を実行しようとしています(定数は正しい項目を指します)。
getSession().getNamedQuery(CREATE_SQL).setString(CREATE_SQL_TABLE_NAME_PARAM, "wibble").executeUpdate();
コードを実行すると、引用符で囲まれたテーブル名に関するSQLエラーが発生します。
CREATE TABLE IF NOT EXISTS 'wibble' (
生成されたクエリを取得し、テーブル名を引用符で囲まずに試してみると、クエリは正常に機能します。私の問題を引き起こしているのはそれらの引用だけです。
setString
だから私の質問は:私のパラメータが引用符で囲まれていないことを確認する代わりに何を使用する必要がありますか?運setParameter
が悪かったので、APIからこれ以上の代替手段を見つけることができませんでした。
ご意見ありがとうございます、リー