Anonymous
@Mapstruct. Недо имущество «Упаковка» не существует в параметрах исходного источника
Сообщение
Anonymous » 27 янв 2025, 13:27
Я пишу приложение MVC REST с Spring Boot и hibernate . Я решил сделать картирование DTO с использованием mapstruct . Кажется, что я сделал все в соответствии с руководством, но выдается ошибка. В чем проблема, я не могу понять. Очень мало информации о форумах и на Google. Сначала я думал, что проблема была в Lombok , поэтому я удалил Lombok и вручную назначил Getters/Setters . Тогда проблема не была решена. Я взял как в классе Drink , так и в DrinkDto я предписал Getters/Setters . Это все еще не помогло.
Код: Выделить всё
@Entity
@Table(name = "drink", schema = "public")
public class Drink {
public Drink() { // Constructor for Hibernate
}
// Fields
//
private @Id
@GeneratedValue
Long id;
@Column(name = "name")
private String name;
@Column(name = "price")
private float price;
@Column(name = "about")
private String about;
@Column(name = "is_deleted")
private boolean isDeleted;
// Relationships
//
@ManyToOne
@JoinColumn(name = "packaging_id")
private Packaging packaging;
@ManyToOne
@JoinColumn(name = "manufacturer_id")
private Manufacturer manufacturer;
@ManyToOne
@JoinColumn(name = "country_id")
private Countries countries;
}
< /code>
DrinkDto: < /p>
public class DrinkDTO {
// Fields
//
private String drinkName;
private float drinkPrice;
private String drinkAbout;
private Packaging drinkPackaging;
private Manufacturer drinkManufacturer;
private Countries drinkCountries;
// Getters and Setters
//
public String getDrinkName() {
return drinkName;
}
public void setDrinkName(String drinkName) {
this.drinkName = drinkName;
}
public float getDrinkPrice() {
return drinkPrice;
}
public void setDrinkPrice(float drinkPrice) {
this.drinkPrice = drinkPrice;
}
public String getDrinkAbout() {
return drinkAbout;
}
public void setDrinkAbout(String drinkAbout) {
this.drinkAbout = drinkAbout;
}
public Packaging getDrinkPackaging() {
return drinkPackaging;
}
public void setDrinkPackaging(Packaging drinkPackaging) {
this.drinkPackaging = drinkPackaging;
}
public Manufacturer getDrinkManufacturer() {
return drinkManufacturer;
}
public void setDrinkManufacturer(Manufacturer drinkManufacturer) {
this.drinkManufacturer = drinkManufacturer;
}
public Countries getDrinkCountries() {
return drinkCountries;
}
public void setDrinkCountries(Countries drinkCountries) {
this.drinkCountries = drinkCountries;
}
// toSTRING
@Override
public String toString() {
return "DrinkDTO{" +
"drinkName='" + drinkName + '\'' +
", drinkPrice=" + drinkPrice +
", drinkAbout='" + drinkAbout + '\'' +
", drinkPackaging=" + drinkPackaging +
", drinkManufacturer=" + drinkManufacturer +
", drinkCountries=" + drinkCountries +
'}';
}
CustomerController:
Код: Выделить всё
@GetMapping("/drinks")
List getAllDrinks(){
return DrinkMapper.INSTANCE.drinksToDrinksDTO(customerService.getAllDrinks());
}
< /code>
build.gradle
// Mapstruct
implementation 'org.mapstruct:mapstruct:1.3.1.Final'
annotationProcessor 'org.mapstruct:mapstruct-processor:1.3.1.Final'
DrinkMapper:
Код: Выделить всё
@Mapper
public interface DrinkMapper {
DrinkMapper INSTANCE = Mappers.getMapper(DrinkMapper.class);
@Mapping(source = "name", target = "drinkName")
@Mapping(source = "price", target = "drinkPrice")
@Mapping(source = "about", target = "drinkAbout")
@Mapping(source = "packaging", target = "drinkPackaging")
@Mapping(source = "manufacturer", target = "drinkManufacturer")
@Mapping(source = "countries", target = "drinkCountries")
DrinkDTO drinkToDrinkDTO(Drink drink);
@Mapping(source = "drinkName", target = "name")
@Mapping(source = "drinkPrice", target = "price")
@Mapping(source = "drinkAbout", target = "about")
@Mapping(source = "drinkPackaging", target = "packaging")
@Mapping(source = "manufacturer", target = "drinkManufacturer")
@Mapping(source = "countries", target = "drinkCountries")
Drink drinkDTOtoDrink(DrinkDTO drinkDTO);
@Mapping(source = "name", target = "drinkName")
@Mapping(source = "price", target = "drinkPrice")
@Mapping(source = "about", target = "drinkAbout")
@Mapping(source = "packaging", target = "drinkPackaging")
@Mapping(source = "manufacturer", target = "drinkManufacturer")
@Mapping(source = "countries", target = "drinkCountries")
List drinksToDrinksDTO(List drinks);
}
ошибки:
Подробнее здесь:
https://stackoverflow.com/questions/630 ... parameters
1737973643
Anonymous
Я пишу приложение MVC REST с Spring Boot и hibernate . Я решил сделать картирование DTO с использованием mapstruct . Кажется, что я сделал все в соответствии с руководством, но выдается ошибка. В чем проблема, я не могу понять. Очень мало информации о форумах и на Google. Сначала я думал, что проблема была в Lombok , поэтому я удалил Lombok и вручную назначил Getters/Setters . Тогда проблема не была решена. Я взял как в классе Drink , так и в DrinkDto я предписал Getters/Setters . Это все еще не помогло.[code]@Entity @Table(name = "drink", schema = "public") public class Drink { public Drink() { // Constructor for Hibernate } // Fields // private @Id @GeneratedValue Long id; @Column(name = "name") private String name; @Column(name = "price") private float price; @Column(name = "about") private String about; @Column(name = "is_deleted") private boolean isDeleted; // Relationships // @ManyToOne @JoinColumn(name = "packaging_id") private Packaging packaging; @ManyToOne @JoinColumn(name = "manufacturer_id") private Manufacturer manufacturer; @ManyToOne @JoinColumn(name = "country_id") private Countries countries; } < /code> DrinkDto: < /p> public class DrinkDTO { // Fields // private String drinkName; private float drinkPrice; private String drinkAbout; private Packaging drinkPackaging; private Manufacturer drinkManufacturer; private Countries drinkCountries; // Getters and Setters // public String getDrinkName() { return drinkName; } public void setDrinkName(String drinkName) { this.drinkName = drinkName; } public float getDrinkPrice() { return drinkPrice; } public void setDrinkPrice(float drinkPrice) { this.drinkPrice = drinkPrice; } public String getDrinkAbout() { return drinkAbout; } public void setDrinkAbout(String drinkAbout) { this.drinkAbout = drinkAbout; } public Packaging getDrinkPackaging() { return drinkPackaging; } public void setDrinkPackaging(Packaging drinkPackaging) { this.drinkPackaging = drinkPackaging; } public Manufacturer getDrinkManufacturer() { return drinkManufacturer; } public void setDrinkManufacturer(Manufacturer drinkManufacturer) { this.drinkManufacturer = drinkManufacturer; } public Countries getDrinkCountries() { return drinkCountries; } public void setDrinkCountries(Countries drinkCountries) { this.drinkCountries = drinkCountries; } // toSTRING @Override public String toString() { return "DrinkDTO{" + "drinkName='" + drinkName + '\'' + ", drinkPrice=" + drinkPrice + ", drinkAbout='" + drinkAbout + '\'' + ", drinkPackaging=" + drinkPackaging + ", drinkManufacturer=" + drinkManufacturer + ", drinkCountries=" + drinkCountries + '}'; } [/code] CustomerController: [code]@GetMapping("/drinks") List getAllDrinks(){ return DrinkMapper.INSTANCE.drinksToDrinksDTO(customerService.getAllDrinks()); } < /code> build.gradle // Mapstruct implementation 'org.mapstruct:mapstruct:1.3.1.Final' annotationProcessor 'org.mapstruct:mapstruct-processor:1.3.1.Final' [/code] DrinkMapper: [code]@Mapper public interface DrinkMapper { DrinkMapper INSTANCE = Mappers.getMapper(DrinkMapper.class); @Mapping(source = "name", target = "drinkName") @Mapping(source = "price", target = "drinkPrice") @Mapping(source = "about", target = "drinkAbout") @Mapping(source = "packaging", target = "drinkPackaging") @Mapping(source = "manufacturer", target = "drinkManufacturer") @Mapping(source = "countries", target = "drinkCountries") DrinkDTO drinkToDrinkDTO(Drink drink); @Mapping(source = "drinkName", target = "name") @Mapping(source = "drinkPrice", target = "price") @Mapping(source = "drinkAbout", target = "about") @Mapping(source = "drinkPackaging", target = "packaging") @Mapping(source = "manufacturer", target = "drinkManufacturer") @Mapping(source = "countries", target = "drinkCountries") Drink drinkDTOtoDrink(DrinkDTO drinkDTO); @Mapping(source = "name", target = "drinkName") @Mapping(source = "price", target = "drinkPrice") @Mapping(source = "about", target = "drinkAbout") @Mapping(source = "packaging", target = "drinkPackaging") @Mapping(source = "manufacturer", target = "drinkManufacturer") @Mapping(source = "countries", target = "drinkCountries") List drinksToDrinksDTO(List drinks); } [/code] ошибки: Подробнее здесь: [url]https://stackoverflow.com/questions/63034956/mapstruct-no-property-named-packaging-exists-in-source-parameters[/url]