Ломбок, исключающий поле с @ ToString.Exclude, не работает - PullRequest
1 голос
/ 22 мая 2019

Я использую Lombok для удаления стандартного кода.Я пытаюсь распечатать сущность на консоль, но получаю StackOverflowError.У сущности есть двунаправленная связь с другой сущностью, поэтому я хочу исключить эту сущность из метода 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.Exclude, и это не похоже на поведение.Я использую это неправильно?Я просто хочу распечатать fooId и name, когда я вызываю toString для объекта Foo.

Редактировать

Я знаком с альтернативными подходами к исключениюили включая поля из аннотации @ToString верхнего уровня.Я пытаюсь избежать этого.Я просто хочу использовать @Data на уровне класса и аннотировать поля, которые должны быть исключены.

Редактировать 2

Все еще реплицировать в упрощенном классе.Ломбок версия 1.18.8.

enter image description here

1 Ответ

4 голосов
/ 22 мая 2019

У меня работает.lombok: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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...