首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改组时,Hibernate中查询的不同返回类型

问更改组时,Hibernate中查询的不同返回类型
EN

Stack Overflow用户
提问于 2021-09-07 06:27:33
回答 1查看 104关注 0票数 0

我有一个在Hibernate中使用NativeQuery运行resultSetMapping的方法。它选择某些列(总是相同的列),进行一些筛选和分组,并使用Query.getResultList()返回结果。

这是ResultSetMapping

代码语言:javascript
复制
@SqlResultSetMapping(name = "MonthlySaleMapping", classes = @ConstructorResult(targetClass = MonthlySalesProjection.class, columns = {
    @ColumnResult(name = "segment"),
    @ColumnResult(name = "businessArea"),
    @ColumnResult(name = "customerId"),
    @ColumnResult(name = "customerGroupId"),
    @ColumnResult(name = "category"),
    @ColumnResult(name = "manufacturer"),
    @ColumnResult(name = "organizationNumber"),
    @ColumnResult(name = "year"),
    @ColumnResult(name = "monthOfYear"),
    @ColumnResult(name = "totalSales"),
    @ColumnResult(name = "totalVAT"),
    @ColumnResult(name = "tb"),
    @ColumnResult(name = "quantity")

(})

这是构造函数

代码语言:javascript
复制
public MonthlySalesProjection(String segment, String businessArea, int customerId, int customerGroupId, String category, String manufacturer, String organizationNumber, int year, int monthOfYear, BigDecimal totalSales, BigDecimal totalVAT, BigDecimal tb, BigDecimal quantity)

用户有可能按组设置,并且存在问题。对于所有由用户组成的组的变体都可以为monthOfYear和monthOfYear(这两个变量在代码中都是int )的结果与IntegerType一起返回,但仅在customerId和customerId上分组时除外。然后,这两列的类型作为BigIntegerType返回。我尝试过在我的ColumnResult上设置ColumnResult,但是没有帮助。

数据库: Mysql 8.0.26

  • Connector: mysql-connector-java:8.0.26

  • Hibernate: hibernate-core:5.4.31.Final

  • Java: OpenJDK 11.0.12

有人知道为什么我的SQLResultSetMapping中有不同的类型,这取决于我的组吗?

EN

回答 1

Stack Overflow用户

发布于 2021-09-13 13:00:14

我猜Oracle或JDBC驱动程序只是根据与查询计划器相关的一些差异来报告不同的列类型。最好还是显式地设置类型,以避免出现这样的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69083299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档