В ComboBox (JavaFX) после внедрения Lombok передаются адреса объектов а не атрибут по умолчанию

Код был абсолютно рабочим, однако решил сократить его с помощью Lombok (начал c геттеров и сеттеров). После применения соответствующих аннотаций @Getter, @Setter в ComboBox стали передаваться адреса объектов, а не их атрибут как раньше. Сущность

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class Category {
    private Integer categoryId;
    private String categoryName;
    private String categoryDesc;

    public Category(Integer categoryId, String categoryName, String categoryDesc) {
        this.categoryId = categoryId;
        this.categoryName = categoryName;
        this.categoryDesc = categoryDesc;
    }

    public Category() {
    }

} 

DAO

public class CategoryDAO implements Dao<Integer, Category> {
    private static final CategoryDAO INSTANCE = new CategoryDAO();
    
    private static final String FIND_ALL_SQL = """
            SELECT tlg_category_id,
                tlg_category_name,
                tlg_category_description 
            FROM tlg_category
            """;

    private CategoryDAO() {
    }

    public List<Category> findAll() {
        try (var connection = ConnectionManager.get();
             var preparedStatement = connection.prepareStatement(FIND_ALL_SQL)) {
            var resultSet = preparedStatement.executeQuery();
            List<Category> categories = new ArrayList<>();
            while (resultSet.next()) {
                categories.add(buildCategory(resultSet));
            }
            return categories;
        } catch (SQLException throwables) {
            throwables.printStackTrace();
            throw new DaoException(throwables);
        }
    }

    public static CategoryDAO getInstance() {
        return INSTANCE;
    }

    private Category buildCategory(ResultSet resultSet) throws SQLException {
        return new Category(
                resultSet.getInt("tlg_category_id"),
                resultSet.getString("tlg_category_name"),
                resultSet.getString("tlg_category_description")
        );
    }
}

Реализация ComboBox

public class TelegrammController implements Initializable {
    public ObservableList<Category> categories = FXCollections.observableArrayList();
    @FXML    private ComboBox<Category> selectCategory;

    private void selectCategory() {
        CategoryDAO categoryDAO = CategoryDAO.getInstance();
        categories.clear();
        categories.addAll(categoryDAO.findAll());
        selectCategory.getItems().addAll(categories);
    }
}

результат вывода в ComboBox


Ответы (1 шт):

Автор решения: Fezas

В сущности было упущено нужное возвращаемое значение метода toString().

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class Category {
    private Integer categoryId;
    private String categoryName;
    private String categoryDesc;

    public Category(Integer categoryId, String categoryName, String categoryDesc) {
        this.categoryId = categoryId;
        this.categoryName = categoryName;
        this.categoryDesc = categoryDesc;
    }

    public Category() {
    }

    @Override
    public String toString() {
        return categoryName;
    }
}
→ Ссылка