问题标签 [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.
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 时转换失败。
hibernate - 将本机查询转换器列休眠到 dto 中的复杂属性
我有一个本机查询,我想将列 ( b_id
, b_code
, b_desc
) 转换complexProperty
为ResultDto
.
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
为属性(作为注释)。complexProperty
ResultDto.class
Embedded
java - Hibernate:返回不是实体的 DTO?
我有以下ContactDTO
java POJO,它是我的实体的精简版本Contact
,包含 100 多个字段/列
联系DTO:
我试图在hibernate
查询中返回它,如下所示,请注意,当我在MYSQL
Workbench 中手动运行此查询时,它会按预期工作:
以上在该getSingleResult()
行给了我以下错误:
如何使用 Hibernate 返回这个 DTO 对象?
我知道这不是我的Contact
实体映射到Contact
数据库表的方式的实体,但我认为我仍然可以Hibernate
通过填充字段来返回它。
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 中的本机查询或其他来源的一些链接,我可以在其中找到对我的问题有用的资源。
我真的很感谢你的帮助。
java - 错误:运算符不存在:bigint = 长空列表的字符变化
我正在使用 Hibernate 从 Postgresql DB 获取数据,但是在尝试将 EMPTY 或 NULL 作为要查询的 Long 值列表传递时总是出现此错误:
(注意:由于请求复杂,我使用本机查询)
ProductFilterParams 看起来像:
所以想法是按颜色过滤产品(效果很好)或显示所有产品,如果没有颜色过滤器(这里我得到这个错误)。
当我将 null 作为颜色传递时,日志是:
绑定参数 [1] 作为 [LONGVARCHAR] - [null]
错误:运算符不存在:bigint = 字符变化
或者当我尝试传递空列表时:
*** 完全没有绑定日志 ***
错误:“)”处或附近的语法错误
我不知道为什么会出现这个错误以及如何解决它。我尝试了一些来自 web/stackoverflow 的谷歌搜索答案,但所有这些答案都是针对 HQL 的,并且无法针对本机查询修复它。
spring-boot - 如何更新带有@Lob 的 JPA 原生查询中的列
我有一个实体类和存储库。在这里,我正在尝试执行更新查询但不工作。如何更新本机查询中的 Lob 列或 jpa 查询的任何其他解决方案以更新 Lob 列。
错误:
sql - 尝试通过 EntityManager 执行具有多个 CREATE VIEW 语句的脚本时出现 SQL 语法错误
我想在我的 Quarkus 应用程序启动时创建一堆 SQL 视图,我写了
我的 SQL 文件如下:
不幸的是,它抛出异常,说
如果我将变量的内容复制粘贴sql
到数据库客户端并执行它,那么它可以工作,即实际上没有语法错误。可能它不喜欢多个查询或行尾之类的。
还有什么可以建议的?
hibernate - 如何使用休眠本机查询获取单个记录字符串值?
StudentModel 学生模型;String sql = "从表中选择名称;
查询查询 = sessionFactory.getCurrentSession().createSQLQuery(sql)
studentModel= (StudentModel) query.getSingleResult();
返回 studentModel.getName();
spring-boot - 无法在本机查询 Spring Boot 中使用“LIKE”
我尝试通过查询获取用户订单:
但它总是返回空列表。我在 SQL Server 中运行此代码并且它可以工作(?1 = 2。?2 = '2021-06-26')。如果我尝试更改“不喜欢”而不是“喜欢”它会运行。我不想使用查询(不是本机)、命名查询或规范方法,因为它会产生更多错误。有什么建议吗?
sql - 使用 EntityManager / Hibernate 进行批量更新
我正在使用 Hibernate 并且(例如)一个Employee
具有 10000 个条目的实体。假设其中 1000 人的薪水为 4000,我想将其增加到 5000。我很难找到有效的方法来做到这一点。
通过获取所有员工并更新相关条目在代码中执行此操作似乎无效、缓慢,并且在某些情况下似乎还会导致“批量更新从更新返回意外行数”错误。
因此,按照这里的建议使用本机查询似乎更好,但是您需要更新 Hibernate 缓存以查看下一个请求的更改:
但是,我不明白的是如何在发出本机更新查询之前分离实体。调用的第二个参数em.find
似乎是单个实体的 id?但是在Emloyees
整个应用程序中都使用了它们,所以我应该如何知道要分离哪些?有没有办法分离所有(例如像em.detachAll(Employee.class))或者我应该在一个循环中迭代所有1000名员工并单独分离它们?
我也愿意接受其他解决我最初问题的解决方案。