You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何打印JpaRepository自定义查询返回的ResourceHierarchy实体列表的具体属性值

问题根因

Java的System.out.println()打印对象时会自动调用该对象的toString()方法,你的ResourceHierarchy实体类没有重写该方法,默认调用父类Object的toString()实现,输出格式为「类全限定名@哈希码」,也就是你现在看到的地址类输出。

解决方案

方案1:使用Lombok生成(推荐,开发效率高)

如果你的项目已经引入Lombok依赖,直接在ResourceHierarchy实体类上添加@ToString注解即可,框架会自动生成包含所有类属性的toString方法:

import lombok.ToString;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
@ToString // 新增该注解
public class ResourceHierarchy {
    @Id
    private String id;
    private String name;
    private String product;
    // 其他属性、getter、setter
}

如果需要排除敏感字段或关联字段,可使用exclude参数:
@ToString(exclude = {"内部敏感字段", "双向关联实体字段"})

方案2:手动重写toString方法

不需要引入第三方依赖,直接在ResourceHierarchy实体类中添加自定义的toString实现,可完全自定义输出格式:

@Override
public String toString() {
    return "ResourceHierarchy [ ID = " + id + ", name = " + name + ", product = " + product + "]";
}
注意事项

如果实体存在双向关联属性(比如@OneToMany和@ManyToOne互相绑定),不要把关联实体字段加入toString的输出内容,避免两个类的toString循环调用引发栈内存溢出。

内容的提问来源于stack exchange,提问作者Jeevan Gyawali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:24:04