问题标签 [hibernate-native-query]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
46 浏览

sql-server - org.hibernate.exception.SQLGrammarException:将 nvarchar 值“ViewWebApp”转换为数据类型 int 时转换失败

我正在尝试将 Hibernate 中的 NativeQuery 功能与 SQL 查询中的 JOIN 和子查询一起使用,当我传递带有 IN 条件的参数列表时它不起作用。

代码:

错误:

javax.persistence.PersistenceException:org.hibernate.exception.SQLGrammarException:无法执行查询] 根本原因 com.microsoft.sqlserver.jdbc.SQLServerException:将 nvarchar 值“ViewWebApp”转换为数据类型 int 时转换失败。

0 投票
2 回答
314 浏览

hibernate - 将本机查询转换器列休眠到 dto 中的复杂属性

我有一个本机查询,我想将列 ( b_id, b_code, b_desc) 转换complexPropertyResultDto.

SQL

ResultDto.class

ComplexPropertyDto.class

我尝试使用列别名complexProperty.code并使用addScalar("complexProperty.code", StringType.INSTANCE)转换器。但我得到了org.hibernate.PropertyNotFoundException: Could not resolve PropertyAccess for complexProperty.code on class xxx.ResultDto

更新

如何将表中的列转换b为属性(作为注释)。complexPropertyResultDto.classEmbedded

0 投票
1 回答
103 浏览

java - Hibernate:返回不是实体的 DTO?

我有以下ContactDTOjava POJO,它是我的实体的精简版本Contact,包含 100 多个字段/列

联系DTO:

我试图在hibernate查询中返回它,如下所示,请注意,当我在MYSQLWorkbench 中手动运行此查询时,它会按预期工作:

以上在该getSingleResult()行给了我以下错误:

如何使用 Hibernate 返回这个 DTO 对象?

我知道这不是我的Contact实体映射到Contact数据库表的方式的实体,但我认为我仍然可以Hibernate通过填充字段来返回它。

0 投票
0 回答
319 浏览

sql - Spring JPA 数据:查询 ElementCollection

我有以下名为“UserInterest”的类。它遵循以下定义:

JPA 自动创建嵌入表user_interest_ids、集合表。

此类工作正常,用户兴趣被正确保存。

现在我需要根据特定兴趣列表过滤用户。

假设我有以下user_interest列表:

在此处输入图像描述

CollectionTable 看起来像这样:

在此处输入图像描述

我想找到拥有interest id 3. 在 PostgreSQL 的 pgAdmin 面板中,过滤器interest_id =3 的查询返回此表:

在此处输入图像描述

我尝试在 Spring Data JPA 中通过内部连接查询在本机查询中实现此过滤器查询:

此内部连接查询返回所有用户,而不仅仅是兴趣 id 为 3 的用户。

我试图在堆栈溢出和互联网上的其他来源中找到一些有用的资源,不幸的是我无法找到对我的问题有用的资源。

您能否给我一些建议,如何将此查询实现为 Spring Data JPA 中的本机查询或其他来源的一些链接,我可以在其中找到对我的问题有用的资源。

我真的很感谢你的帮助。

0 投票
1 回答
235 浏览

java - 错误:运算符不存在:bigint = 长空列表的字符变化

我正在使用 Hibernate 从 Postgresql DB 获取数据,但是在尝试将 EMPTY 或 NULL 作为要查询的 Long 值列表传递时总是出现此错误:

(注意:由于请求复杂,我使用本机查询)

ProductFilterParams 看起来像:

所以想法是按颜色过滤产品(效果很好)或显示所有产品,如果没有颜色过滤器(这里我得到这个错误)。

当我将 null 作为颜色传递时,日志是:

绑定参数 [1] 作为 [LONGVARCHAR] - [null]

错误:运算符不存在:bigint = 字符变化

或者当我尝试传递空列表时:

*** 完全没有绑定日志 ***

错误:“)”处或附近的语法错误

我不知道为什么会出现这个错误以及如何解决它。我尝试了一些来自 web/stackoverflow 的谷歌搜索答案,但所有这些答案都是针对 HQL 的,并且无法针对本机查询修复它。

0 投票
1 回答
372 浏览

spring-boot - 如何更新带有@Lob 的 JPA 原生查询中的列

我有一个实体类和存储库。在这里,我正在尝试执行更新查询但不工作。如何更新本机查询中的 Lob 列或 jpa 查询的任何其他解决方案以更新 Lob 列。

错误:

0 投票
0 回答
40 浏览

sql - 尝试通过 EntityManager 执行具有多个 CREATE VIEW 语句的脚本时出现 SQL 语法错误

我想在我的 Quarkus 应用程序启动时创建一堆 SQL 视图,我写了

我的 SQL 文件如下:

不幸的是,它抛出异常,说

如果我将变量的内容复制粘贴sql到数据库客户端并执行它,那么它可以工作,即实际上没有语法错误。可能它不喜欢多个查询或行尾之类的。

还有什么可以建议的?

0 投票
1 回答
29 浏览

hibernate - 如何使用休眠本机查询获取单个记录字符串值?

StudentModel 学生模型;String sql = "从表中选择名称;

查询查询 = sessionFactory.getCurrentSession().createSQLQuery(sql)

studentModel= (StudentModel) query.getSingleResult();

返回 studentModel.getName();

0 投票
1 回答
39 浏览

spring-boot - 无法在本机查询 Spring Boot 中使用“LIKE”

我尝试通过查询获取用户订单:

但它总是返回空列表。我在 SQL Server 中运行此代码并且它可以工作(?1 = 2。?2 = '2021-06-26')。如果我尝试更改“不喜欢”而不是“喜欢”它会运行。我不想使用查询(不是本机)、命名查询或规范方法,因为它会产生更多错误。有什么建议吗?

0 投票
1 回答
72 浏览

sql - 使用 EntityManager / Hibernate 进行批量更新

我正在使用 Hibernate 并且(例如)一个Employee具有 10000 个条目的实体。假设其中 1000 人的薪水为 4000,我想将其增加到 5000。我很难找到有效的方法来做到这一点。

通过获取所有员工并更新相关条目在代码中执行此操作似乎无效、缓慢,并且在某些情况下似乎还会导致“批量更新从更新返回意外行数”错误。

因此,按照这里的建议使用本机查询似乎更好,但是您需要更新 Hibernate 缓存以查看下一个请求的更改:

但是,我不明白的是如何在发出本机更新查询之前分离实体。调用的第二个参数em.find似乎是单个实体的 id?但是在Emloyees整个应用程序中都使用了它们,所以我应该如何知道要分离哪些?有没有办法分离所有(例如像em.detachAll(Employee.class))或者我应该在一个循环中迭代所有1000名员工并单独分离它们?

我也愿意接受其他解决我最初问题的解决方案。