Hi,
I have a strange behaviour in my app. I created a OneToMany-Relationship: I have an article entity bean and a bom item entity bean.
One article has many bom items.
@OneToMany(mappedBy="article",cascade=CascadeType.ALL) @JoinColumn(name="article", referencedColumnName="article_no") public Collection<BoMItem> getBom() { return bom; }
/** * @return the article. */ @ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.EAGER,optional=false) @JoinColumn(name="article") public Article getArticle() { return article; }
Article impArticle = articleBSI.getArticleById(article.getArticleNo()); System.out.println(impArticle.getArticleNo() + " " + impArticle.getDescription()); for(BoMItem bomItem : article.getBom()) { System.out.println(bomItem.getId() + " " + bomItem.getPart().getPartNo() + " " + bomItem.getQuantity()); } //impArticle.removeAllBoMItems(); System.out.println("BoM:"); for(BoMItem bomItem : article.getBom()) { impArticle.addBoMItem(bomItem); }
public void addBoMItem(BoMItem item) { item.setArticle(this); bom.add(item); }
if article is managed (ie part of the persistence context), then by cascade, the items will be.