使用Hibernate进行动态查询

时间:2019-01-22 22:52:32

标签: postgresql hibernate jpa dynamic

我试图从动态表中选择对象,但是当我运行代码时,我得到了一些错误……有一种方法可以做到……我正在使用JPA,hibernate和postgres

    @Query(nativeQuery = true,
        value =
                "SELECT u.* " +
                        "FROM " +
                        " ?1 AS u ")
    Map<String, String> findAny(String tableName);

这是错误...

  

org.springframework.dao.InvalidDataAccessResourceUsageException”,       “ debugMessage”:“ org.springframework.dao.InvalidDataAccessResourceUsageException:无法提取ResultSet; SQL [n / a];嵌套异常是org.hibernate.exception.SQLGrammarException:无法提取ResultSet \ r \ n \ tat org.springframework。 orm.jpa.vendor.HibernateJpaDialec

     

org.postgresql.util.PSQLException:错误:“ $ 1”或附近的语法错误

2 个答案:

答案 0 :(得分:0)

使用Hibernate时,不能将table name设置为paramater,这是为了防止出现SQL注入之类的安全风险。

答案 1 :(得分:-1)

您必须提到要从中获取数据的表

value =“ SELECT * FROM TableName u?1”)