JPA使用列名(和表名)作为参数创建原生查询

4

JPA中可以将列名(或表名)设置为参数,例如:

   Query query = em.createNativeQuery(  "select ? , ? from ?");  
   query.setParameter(1, title); 
   query.setParameter(2, value); 
   query.setParameter(3, tableName); 

当运行这段代码时,我遇到了SQL异常!!该代码用于从在运行时生成的表中获取数据。它使用字符串拼接来实现,但是如果需要在查询中设置参数呢?


4
无法使用参数设置表名或列名。 - Jens
为什么要进行字符串拼接?将静态值放入字符串中。 - Jens
@Jens:谢谢。 - Riadh
1个回答

1
这在任何明智的预处理语句实现中都不可能。绑定参数的整个意义在于分离代码和数据,而列是标识符,因此是“代码”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接