Ограничьте открытые атрибуты сущностей, использующих DTO с данными - PullRequest
1 голос
/ 30 сентября 2019

Я пытаюсь ограничить количество атрибутов объекта с помощью dto и отобразить их с использованием таблицы данных. Я также нашел реализацию, но каждый раз, когда отправляется почтовый запрос, он выдает («не найден основной или конструктор по умолчанию для интерфейса java.util.function.Function») для почтальона и «java.lang.NoSuchMethodException: java.util». .function.Function. () "на консоли в STS.

Я создал конструкторы для сущности и DTO безрезультатно.

Это реализация, которой я следую:(https://github.com/darrachequesne/spring-data-jpa-datatables#limit-the-exposed-attributes-of-the-entities) вот контроллер для этого https://github.com/darrachequesne/spring-data-jpa-datatables/blob/master/src/test/java/org/springframework/data/jpa/datatables/repository/EmployeeRepositoryTest.java

это мой контроллер:

    @JsonView(DataTablesOutput.View.class)
    @RequestMapping(value = "api/libraryitemspojo", method = RequestMethod.POST)
    public DataTablesOutput<LibraryItemDataTableDTO> getLibraryItemsPojo(@Valid @RequestBody DataTablesInput input, Function<LibraryItem,LibraryItemDataTableDTO> converter) {
        return libraryItemsdtr.findAll(input, converter);

    }

это мой dto

public LibraryItemDataTableDTO(Long id, String barcode) {
    super();
    this.id = id;
    this.barcode = barcode;

}
Long id;

String barcode;
//getters setters
public LibraryItemDataTableDTO() {}

}

этоэто сущность

public class LibraryItem {

 public LibraryItem() {}

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @JsonView(DataTablesOutput.View.class)
    private Long id;


    @ManyToOne
    @JoinColumn(name = "FkStatus")
    private MetaStatus status;



    @ManyToOne
    @JoinColumn(name = "FkLibraryCategory")
    private LibraryCategory libraryCategory;


    @OneToMany(mappedBy = "item")
    @JsonView(DataTablesOutput.View.class)
    private List<LibraryItemLanguage> itemLanguageList;

    @OneToMany(mappedBy = "item")
    private List<LibraryItemOpt> itemOptList;


    @OneToMany(mappedBy = "item")
    @JsonView(DataTablesOutput.View.class)
    private List<LibraryItemImages> itemImageList;

    @ManyToOne
    @JoinColumn(name = "CreatedBy")
    private User CreatedBy;


    @Column(name = "CreatedAt")
    private Date created;


    @ManyToOne
    @JoinColumn(name = "UpdatedBy")
    private User UpdatedBy;


    @Column(name = "UpdatedAt")
    private Date updated;

    @JsonView(DataTablesOutput.View.class)
    private String barcode;

}

мой репозиторий

public interface LibraryItemsDataTables extends DataTablesRepository<LibraryItem, Long> {

}


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