当前位置: 首页 > 知识库问答 >
问题:

Lombok,不包括带@ToString的字段。排除不起作用

艾骏喆
2023-03-14

我使用Lombok删除样板代码。我试图打印出一个实体到控制台,但我得到了一个StackOverflow错误。该实体与另一个实体具有双向关系,因此我想从toString方法中排除该实体。

我的实体如下所示:

@Entity
@Data
public class Foo {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long fooId;

    private String name;

    @ManyToOne
    @JoinColumn(name = "barId")
    @EqualsAndHashCode.Exclude
    @ToString.Exclude
    private Bar bar; 
}

这是我第一次尝试使用@ToString。排除,它似乎没有行为。我用错了吗?当我在Foo对象上调用toString时,我只想打印出foIdname

编辑

我熟悉从顶层@ToString注释中排除或包含字段的替代方法。我正试图避免这种情况。我只想在类级别使用@Data,并注释应该排除的字段。

编辑2

仍在简化类上复制。Lombok版本1.18.8。

共有3个答案

闻鹤龄
2023-03-14

您必须更新eclipse中安装的lombok(下载新的lombok.jar,运行java-jar lombok.jar并重新启动eclipse)。至少这为我解决了问题。

欧阳炜
2023-03-14

@ToString接受一个参数exclude,该参数可用于将字段从字符串中排除。

@ToString(exclude={“bar”})

@Entity
@ToString(exclude = {"bar"})
public class Foo {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long fooId;

    private String name;

    @ManyToOne
    @JoinColumn(name = "barId")
    @EqualsAndHashCode.Exclude
    private Bar bar; 
}
何兴邦
2023-03-14

对我有用<代码>龙目岛:1.18.8

import lombok.Data;
import lombok.ToString;

@Data
public class MyClass {
    public static void main(String args[]) {
        MyClass myClass = new MyClass();
        System.out.println("ToString::" + myClass);
    }

    private String a = "ABC";

    @ToString.Exclude
    private String b = "DEF";

}

输出:ToString::MyClass(a=ABC)

 类似资料:
  • 我有这个POJO 如何从对象员工打印只是ID?我不想打印整个对象雇员,只是一个字段。 非常感谢。

  • Lombok项目的类注释,ToString,用于在其注释的类内自动生成一个ToString()方法。 对于这个类: 调用生成的toString()方法将生成以下输出: 注释的可选元素可用于包含或排除特定字段,但我想知道的是... 可能类似于:

  • 我创建了一个基于Maven的spring引导项目来探索如何使其在Websphere Application Server上运行。这是我需要排除spring-boot-starter-web的嵌入式Tomcat的方法。 我试过以下几件事: 为spring-boot-starter-tomcat添加了一个新的依赖项,其作用域为:provided(请参见在部署到JBOSS[spring-boot])时从

  • 问题内容: 我已经测试了elasticsearch突出显示字段功能,并且工作正常。我使用了 elasticsearch2.4.4 和 spring-data- elasticsearch-2.0.0.RELEASE 我最近将 elasticsearch 升级到 5.5.0 和 spring-data-elasticsearch-3.0.0.M4 当我测试相同的代码时,突出显示不会发生 下面是示例代

  • 我需要bootstrap vue表中的帮助,如果im筛选字段,正在工作,但是如果im筛选,不起作用 表代码: 这是我的领域 这是我的会员。数据

  • 我正在尝试使用龙目岛和MapStruct配置SpringBoot(v2.6.2),已经配置了maven编译器插件和龙目岛地图结构绑定(注释处理器路径),但龙目岛类尚未创建: pom.xml 尝试使用DI时总是出现未初始化变量错误: 变量xxxx可能尚未初始化