我有一个配置表,在其中配置select子句查询字符串,我将获得该字符串并运行NativeQuery。
我正在尝试实现一种功能,即使用spring-boot将数据库返回的值传递给本机MySQL/Hibernate查询,但在org.hibernate.exception.SqlGramMareXception:could not extract ResultSet时遇到了问题
ConfigDTO reportsConfigDTO = reportsConfigRepository.getReportByCustomValue();
ConfigDTO有一个名为SelectClause的字段,当运行查询时,我将从数据库获取一个SelectClause值,例如
SELECT * FROM users where CREATE_DATE > '2019-03-27 19:06:02'
我正在尝试将此值传递给另一个查询。
String query = reportsConfigDTO.getSelectClause();
UserDTO userDTO = userRoleRepository.getReportByCustom(query);
存储库中的本机查询是
@Query(value = ":query", nativeQuery=true)
public UserDTO getReportByCustom(@Param("query") String query);
因此,基本上,我将这个select*FROM where CREATE_DATE>'2019-03-27 19:06:02'
(从上一个查询返回)传递给UserRoleRepository.GetReportByCustom
我做错什么了吗?不确定这是否是正确的方法,
我得到低于sql异常
SQL错误:1064,SQLState:42000 2019-03-31 16:51:00.116错误33850---[Batch]O.H.Engine.jdbc.spi.SQLExCeptionHelper:您的SQL语法有错误;查看与您的MySQL server版本相对应的手册,以了解在线程“Reports”org.springFramework.dao.InvalidDataAccessResourceUsageException:无法提取结果集的第1行异常处的“select*FROM users where CREATE_DATE>\'2019-03-27 19:06:02\'''附近使用的正确语法;SQL[N/A];嵌套异常为org.hibernate.exception.sqlgrammarexception:无法提取ResultSet
传递给@query的查询应该是有效的JPQL。您传递的是一个JPA不理解的SQL查询。因此出现了错误。
你应该这样写:
//Here UserDTO should be your Entity name.
//Since date is a variable, you should receive it from the caller.
//Here `u` will automatically be an object of UserData pojo.
String QUERY = "SELECT u FROM UserDTO where CREATE_DATE > :date"
@Query(value = QUERY, nativeQuery=true)
public UserDTO getReportByCustom(@Param("date") LocalDateTime date);
您可以在这里查看JPQL参考--https://docs.oracle.com/html/e13946_04/ejb3_langref.html和https://thoughts-on-java.org/JPQL/
//Some sql-query.properties file added to your classpath
sql.query.userQuery=SELECT u FROM UserDTO where CREATE_DATE > :date
在您的DAO层中这样读:
@Value("${sql.query.userQuery}")
String QUERY;
此外,如果要将查询放入数据库中,则最终必须编写另一个查询来获取它。此外,您将在查询读取上浪费额外的读取时间。
问题内容: 第一次海报,长期的读者。我花了很长时间寻找答案,这使我认为这是我所缺少的基本知识。 我试图提取保存在数据库表中的数据,并将其传递通过,以显示在Highcharts图中。在检查源代码时,我没有从Django或客户端收到任何错误。 使用:Django 1.7和Python 3.4 views.py: get_data()函数: 模板: 最后的网址: 一切似乎都在运行,但Highchart图
问题内容: 我正在使用RODBC软件包访问R中的sql数据库。我无法找到有关如何将向量从R作为向量传递给sql的任何有用信息。 我想将id向量传递给sql而不是对其进行硬编码。 问题答案: 新包装对此有最佳答案。它允许使用任何R对象,并将其自动转换为SQL https://db.rstudio.com/dplyr/
我有一张地图,用户可以在其中选择一个县。我希望它能够做的是返回“成员”在该县的所有“遭遇”。 唯一的问题是,“county”不是我需要为其返回文档的索引字段(“county”是“member”索引中的字段,而我想从“Conferences”索引中返回文档)(它们由“memberId”链接)。 以下是我目前所做的,在一个县中获得成员。 但这将返回该县成员的文档列表。我需要它返回这些文档的member
问题内容: 给定一个ID数组,我想拥有一个SQL查询,该查询使用WHERE子句中的数组值,例如: 如何生成此查询字符串以用于MySQL? 问题答案: 谨防! 该答案包含一个严重的SQL注入漏洞。在未确保清除任何外部输入的情况下,请勿使用此处介绍的代码示例。
我有一个用户域:1)字符串用户名,2)字符串密码,3)角色[]角色(角色是枚举)。 my UserRepository中的方法如下所示: 这将引发,因为它无法将String转换为Roles,这是一个枚举。如果我摆脱了{0}周围的引号。角色,那么它会抛出这个: 如果User参数可以直接序列化到MERGE查询中,或者以任何方式解析此Roles[],这将是理想的。 有人能帮我吗?我使用的是SDN3.1。
我有一个服务类,它通过使用< code > carrepository . retrieve cars()调用JPA存储库来接收汽车列表。存储库方法使用本地查询来检索记录。 现在我想传递参数< code > carrepository . retrieve cars(Long vinNo,Long serialNo)并在查询中使用它们。我假设我会需要一些东西作为准备好的陈述。然而,我不知道如何实现