У меня есть несколько классов моделей, и я считаю, что два из них имеют неправильную аннотацию.Тем не менее, я не знаю, как сделать это правильно, хотя я уже искал это.
Вот класс модели - я хочу добиться, чтобы в одном магазине могло быть много товаров
Магазин:
@Entity
@Table
public class Shop extends AbstractBaseDomain<Long> {
@Id
@GeneratedValue
private long shop_id;
@NotBlank
@Size(min = 2, max = 50)
@Column(name ="name")
private String name;
@NotNull
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name ="address")
private Address address;
@OneToMany(mappedBy = "product_id")
private List<Product> products;
}
Продукт:
@Entity
@Table
public class Product extends AbstractBaseDomain<Long> {
@Id
@GeneratedValue
private long product_id;
@NotBlank
@Size(min = 2, max = 50)
@Column(name ="productname")
private String productname;
@NotBlank
@Size(min = 2, max = 50)
@Column(name ="manufacturer")
private String manufacturer;
@NotNull
@Column(name ="currentPrice")
private BigDecimal currentPrice;
@ManyToOne
private Order order;
}
HistoryPrice
@Entity
@Table
public class HistoryPrice extends AbstractBaseDomain<Long> {
@NotNull
@JoinColumn(name ="product_id")
private Product product;
@NotNull
@Column(name ="price")
private BigDecimal price;
@NotNull
@Column(name ="[from]")
private LocalDateTime from;
Когда я пытаюсь
Shop shop = shopService.findShopById(id);
, я всегда получаю сообщение об ошибке, говоря SQLGrammarException.
Теперь я реализовал shop_id и product_id в своих классах модели, и теперь я получаю еще одно сообщение об ошибке:
product [product_id])) должен иметь такое же количество столбцов, что и указанный первичный ключ (shop [shop_id, id])
Возможно, кто-то может помочь мне решить эту проблему.
Заранее спасибо