【问题标题】:Dynamic query with hibernate使用休眠的动态查询
【发布时间】:2019-06-16 11:23:34
【问题描述】:

我正在尝试从动态表中选择对象,但是当我运行我的代码时出现一些错误...有一种方法可以做到...我正在使用 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: ERROR: "$1" 或附近的语法错误

【问题讨论】:

    标签: postgresql hibernate jpa dynamic


    【解决方案1】:

    使用Hibernate,你不能将table name设置为paramater,这是为了防止SQL注入等安全风险。

    【讨论】:

      【解决方案2】:

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

      value ="SELECT * FROM TableName u ?1")

      【讨论】:

        猜你喜欢
        • 2015-08-14
        • 1970-01-01
        • 2011-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-30
        • 2011-08-09
        相关资源
        最近更新 更多