首页 > 解决方案 > 使用休眠的动态查询

问题描述

我正在尝试从动态表中选择对象,但是当我运行我的代码时,我遇到了一些错误......有一种方法可以做到......我正在使用 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 [不适用];嵌套异常是 org.hibernate.exception.SQLGrammarException: could not extract ResultSet\r\n\tat org.springframework.orm.jpa.vendor.HibernateJpaDialec

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

标签: postgresqlhibernatejpadynamic

解决方案


在 Hibernate 中,不能设置table nameparamater,这是为了防止 SQL 注入等安全风险。


推荐阅读