Моя проблема заключается в том, что «Не удалось установить значение поля [2] путем отражения: [class com.shopctr7.backend.entity.ShopimportProductId.productId] установщик com.shopctr7.backend.entity.ShopimportProductId.productId»
ShopimportProductId класс:
@Embeddable
public class ShopimportProductId implements Serializable {
/**
*
*/
private static final long serialVersionUID = -5618056056848194639L;
@Column(name = "shopimport_id")
private Long shopimportId;
@Column(name = "product_id")
private Long productId;
public ShopimportProductId() {
}
public Long getShopimportId() {
return shopimportId;
}
public void setShopimportId(Long shopimportId) {
this.shopimportId = shopimportId;
}
public Long getProductId() {
return productId;
}
public void setProductId(Long productId) {
this.productId = productId;
}
}
ShopimportProduct класс продукта:
@Entity
@Table(name = "shopimport_product")
public class ShopimportProduct implements Serializable {
/**
*
*/
private static final long serialVersionUID = 17304033239166680L;
@EmbeddedId
private ShopimportProductId shopimportProductId;
@ManyToOne
@MapsId("shopimportId")
private Shopimport shopimport;
@ManyToOne
@MapsId("productId")
private Product product;
private Long price;
public ShopimportProduct() {
}
private Integer amount;
public ShopimportProductId getShopimportProductId() {
return shopimportProductId;
}
public void setShopimportProductId(ShopimportProductId shopimportProductId) {
this.shopimportProductId = shopimportProductId;
}
public Shopimport getShopimport() {
return shopimport;
}
public void setShopimport(Shopimport shopimport) {
this.shopimport = shopimport;
}
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
public Long getPrice() {
return price;
}
public void setPrice(Long price) {
this.price = price;
}
public Integer getAmount() {
return amount;
}
public void setAmount(Integer amount) {
this.amount = amount;
}
}
Shopimport класс
@Entity
@Table(name = "shopimport")
public class Shopimport extends UserDateAudit {
/**
*
*/
private static final long serialVersionUID = -7067616970499289402L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
@OneToMany(mappedBy = "product")
private List<ShopimportProduct> shopimportProducts;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public List<ShopimportProduct> getShopimportProducts() {
return shopimportProducts;
}
public void setShopimportProducts(List<ShopimportProduct> shopimportProducts) {
this.shopimportProducts = shopimportProducts;
}
}
Класс продукта
@Entity
@Table(name = "product")
public class Product extends UserDateAudit {
/**
*
*/
private static final long serialVersionUID = -979803757359739557L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
private String name;
@NotNull
private Long price;
@NotNull
private Integer amount;
private String imageUrl;
@OneToMany(mappedBy = "shopimport")
private List<ShopimportProduct> shopimportProducts;
@Enumerated(EnumType.STRING)
@Column(length = 60)
private ProductType productType;
public Product() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getPrice() {
return price;
}
public void setPrice(Long price) {
this.price = price;
}
public Integer getAmount() {
return amount;
}
public void setAmount(Integer amount) {
this.amount = amount;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public ProductType getProductType() {
return productType;
}
public void setProductType(ProductType productType) {
this.productType = productType;
}
public List<ShopimportProduct> getShopimportProducts() {
return shopimportProducts;
}
public void setShopimportProducts(List<ShopimportProduct> shopimportProducts) {
this.shopimportProducts = shopimportProducts;
}
}
Mytest
User user = userRepository.findById(2L)
.orElseThrow(() -> new UsernameNotFoundException("User not found with id : "));
Shopimport shopImport = new Shopimport();
shopImport.setUser(user);
Shopimport ShopImportResult = shopImportRepository.save(shopImport);
Product product1 = productRepository.findById(2L)
.orElseThrow(() -> new UsernameNotFoundException("User not found with id : "));
ShopimportProduct shopimportProduct = new ShopimportProduct();
shopimportProduct.setShopimport(ShopImportResult);
shopimportProduct.setProduct(product1);
shopimportProduct.setAmount(100);
shopimportProduct.setPrice(1000L);
shopImportProductRepository.save(shopimportProduct);
Product product2 = productRepository.findById(2L)
.orElseThrow(() -> new UsernameNotFoundException("User not found with id : "));
ShopimportProduct shopimportProduct2 = new ShopimportProduct();
shopimportProduct2.setShopimport(ShopImportResult);
shopimportProduct2.setProduct(product2);
shopimportProduct2.setAmount(200);
shopimportProduct2.setPrice(2000L);
shopImportProductRepository.save(shopimportProduct2);
Моя проблема в shopImportProductRepository.save (shopimportProduct);Не удалось установить значение поля [2] по значению отражения: [class com.shopctr7.backend.entity.ShopimportProductId.productId] установщик com.shopctr7.backend.entity.ShopimportProductId.productId