Я пытаюсь ограничить количество атрибутов объекта с помощью 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> {
}