私はエンティティクラスが2つあり、CategoryとProductはoneToMany関係です。JPAのエンティティ間の更新関係
特定のカテゴリの新しい製品をデータベースに追加すると、カテゴリ側は新製品で更新されません。したがって、categoryListはまだ古い製品を保持しています。
私はJPAとJSF2.0を使用しています。2.
Productエンティティ:
public class Product implements Serializable {
@ManyToOne
private Category category;
//getters::setters
カテゴリーエンティティ:
public class Category implements Serializable {
@OneToMany(mappedBy = "category")
private List<Product> productList;
ProductControllerクラス:
public ProductController {
@EJB
private ProductService productService;
private Category category;
private Product product;
//getters::setters
//actionMethod called by JSFpage.
public String addProduct(){
product.setCategory(category);
productService.add(product);
return "productPage.xhtml";
}}
この方法私は何も見ることができないカテゴリ側の更新。 私はこの問題の解決策を見つけました。以下に示すように、私は
public ProductController {
@EJB
private ProductService productService;
@EJB
private CategoryService categoryService;
private Category category;
private Product product;
//getters::setters
//actionMethod called by JSFpage.
public String addProduct(){
product.setCategory(category);
productService.add(product);
// update category with new product
category.getProductList().add(product);
categoryService.update(category);
return "productPage.xhtml";
}}
...カテゴリが更新されます。この道をProductController内のコードを変更しかし、私はそれは開発者の責任(あなただtは右の組み合わせ:)