Доброго времени суток, подскажите пожалуйста как правильно решить такую задачу:
у меня есть 2 сущности
Связь между ними Многие ко многом, то есть создана таблица transaction_product с полями:
- transaction_id
- product_id
соответственно.
entity классы выглядят примерно так:
Product
@Entity
@Table(name = "products")
public class Product {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(name = "name")
private String name;
@ManyToOne(cascade = {CascadeType.DETACH,CascadeType.MERGE,CascadeType.REFRESH}, fetch = FetchType.LAZY)
@JoinColumn(name = "category")
private Category category;
@Column(name = "cost")
private Double cost;
//constructor getter setter
}
Transaction
@Entity
@Table(name = "transactions")
public class Transaction {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@ManyToMany(cascade = {CascadeType.MERGE, CascadeType.REFRESH, CascadeType.DETACH},
fetch = FetchType.LAZY)
@JoinTable(
name = "transactions_products",
joinColumns = @JoinColumn(name = "product_id"),
inverseJoinColumns = @JoinColumn(name = "transaction_id")
)
private List<Product> products;
//constructor getter setter
}
Тут мне понадобилось добавить еще одну колонку "quantity" которая отображает количество конкретных продуктов в транзакции. Логичнее всего добавить в таблицу transaction_product - но вот тут ступор, а как это отобразить в java?
Наверное как то так?
private List<Map<Product, Integer>> products;
но как это связать с hibernate?
или не надо так делать?