所以我有一个名为 order 的实体,其中包含一组材料。这是另一个实体,就像下面的代码一样。
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "order_material", joinColumns = @JoinColumn(name = "order_id"), inverseJoinColumns = @JoinColumn(name = "material_id"))
private Set<Material> Materials;
我想向订单实体添加另一个数量字段,但它应该是每个材料。所以我们有每个订单的每种材料的数量。我有点困惑该怎么做。就数据库而言。
我想到了以下几点:
1- 为 order_material_quantity 创建另一个表并将其与订单连接。
2- 我想到了这一点,但我不确定是否可行:是否可以与我们有 order_material 的连接表连接?
3- 有什么更好的主意吗?
答案 0 :(得分:1)
您关于数据库设计的问题与 spring-boot 和 hibernate 无关。 我建议您将订单表分解为两个表:order 和 order_detail。
像这样:
case 'email':
var template = `
<div>
Day(s) to Complete:
<select id="e_time" df-e_time>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</div>
`;
editor.addNode('email', 1, 1, pos_x, pos_y, 'custom-node', {
"e_time": ""
}, template);
break;
<script>
window.onload = function() {testing()};
function testing() {
var elm = document.getElementById('e_time'),
df = document.createDocumentFragment();
for (var i = 1; i <= 42; i++) {
var option = document.createElement('option');
option.value = i;
option.appendChild(document.createTextNode("option #" + i));
df.appendChild(option);
}
elm.appendChild(df);
}
</script>
和:
@Table("order")
public class Order {
@Id
@Column("order_id")
private Long orderId;
@Column("creation_date")
private Date creationDate;
@Column("user_id")
private Long userId;
@Column("customer_id")
private Long customerId;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "order_detail", joinColumns = @JoinColumn(name = "order_id"), inverseJoinColumns = @JoinColumn(name = "order_detail_id"))
private Set<OrderDetail> orderDetails;
}