ошибка с пружиной jpa много ко многим с лишними столбцами - PullRequest
0 голосов
/ 16 октября 2019

Моя проблема заключается в том, что «Не удалось установить значение поля [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

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