Hibernate使用参数命名查询

时间:2017-02-10 23:40:17

标签: mysql hibernate

我想创建一个带有命名查询的表,但是在另一个数据库上。并使用参数获取数据库的名称。

我试图像这样做

<sql-query name="createStatement">
    <query-param name="dbName" type="string"/>
    CREATE TABLE `:dbName`.`test` (
      `customer_id` int(11) NOT NULL AUTO_INCREMENT,
      PRIMARY KEY (`customer_id`)
    );
</sql-query>

但是我收到了未知参数名称Exception。我试过添加空格或删除`字符,但仍然无效。

设置此参数的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

查询参数不能用于数据库标识符。也不是表标识符,列标识符或SQL关键字或表达式。

查询参数只能用于单个词法元素,并且只能用于否则可以使用常量数据值,即带引号的字符串文字,引用日期/时间字面值或数字文字。