gpt4 book ai didi

java - Hibernate 只返回一个结果(更改表名后)

转载 作者:可可西里 更新时间:2023-11-01 06:51:37 24 4
gpt4 key购买 nike

我正在使用 hibernate 从我的 MySQL 数据库检索结果到我的 Java 项目中。最近,我有很多冗余数据,不得不通过将所需数据复制到新表中,然后将新创建的表重命名为旧表来手动清理数据库。

但是,现在使用 hibernate 查询数据库只给出一行作为结果。我手动检查了数据库,数据库中有几个不同的行。我对 Hibernate 的查询是这样的:

Criteria c = session.createCriteria(UserDto.class);
c.setMaxResults(100);
List<UserDto> users = c.list();

users 包含 100 个元素,但全部相同。

userDto的映射是here .

知道这里发生了什么吗?

最佳答案

如果您的 UserDto 类具有 ToMany 关系,那么很可能对它们进行外部联接会导致许多记录都包含一个相同的用户数据。你应该使用

session.createCriteria(UserDto.class).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)

关于java - Hibernate 只返回一个结果(更改表名后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8437756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com