私はJPAを初めて使用するので、多対多の関係について質問があります(0からより多くの実装):
あなたが次のような関係を持っている場合:
前述のように、製品は注文なしで存在でき(通常、新製品が到着すると追加されます)、後で1つ以上の注文で使用できます。注文には少なくとも1つ以上の商品が含まれている必要があります。
あなたは関係を述べなければなりません
@Entity(name = "ORDERS")
public class Order {
@Id
@Column(name = "ORDER_ID", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private long orderId;
@Column(name = "CUST_ID")
private long custId;
@Column(name = "TOTAL_PRICE", precision = 2)
private double totPrice;
@ManyToMany(fetch=FetchType.EAGER)
@JoinTable(name="ORDER_DETAIL",
joinColumns=
@JoinColumn(name="ORDER_ID", referencedColumnName="ORDER_ID"),
inverseJoinColumns=
@JoinColumn(name="PROD_ID", referencedColumnName="PROD_ID")
)
private List<Product> productList;
...............
The other attributes and getters and setters goes here
}
と
@Entity(name = "PRODUCT")
public class Product {
@Id
@Column(name = "PROD_ID", nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private long prodId;
@Column(name = "PROD_NAME", nullable = false,length = 50)
private String prodName;
@Column(name = "PROD_DESC", length = 200)
private String prodDescription;
@Column(name = "REGULAR_PRICE", precision = 2)
private String price;
@Column(name = "LAST_UPDATED_TIME")
private Date updatedTime;
@ManyToMany(mappedBy="productList",fetch=FetchType.EAGER)
private List<Order> orderList;
...............
The other attributes and getters and setters goes here
}
ゼロ対多の関係は、(現時点で)注文にリンクされていない製品をそのまま保持することはまだ可能ですか?
ただし、注文で製品を使用する場合は、製品の注文リストを更新し、注文の製品リストも更新する必要があります。これを強制するにはどうすればよいですか、それともJPAは私のためにこれを実行しますか?