//Category EJB
package session;
import com.Entity.Category; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext;
// Item EJB
package session;
import com.Entity.Item; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext;
@Stateless public class saveItemBean implements saveItemRemote {
@PersistenceContext
private EntityManager em;
public void saveItem(Item itm) {
em.persist(itm);
}
public void persist(Object object) {
em.persist(object);
}
}
//Servlet for save Item
package src;
import com.Entity.Item; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.ejb.EJB; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import session.CategoryFacadeRemote; import session.saveItemRemote;
public class saveItemAndIemCategory extends
HttpServlet { @EJB private saveItemRemote saveItemBean; @EJB
private CategoryFacadeRemote categoryFacadeBean;
processRequest(HttpServletRequest request, HttpServletResponse response)
try {
Item itm = new Item();
itm.setName("HelloNew");
saveItemBean.saveItem(itm);
}catch(Exception e){
e.printStackTrace();
}
finally {
out.close();
}
}
}
//Item Entity Bean
package com.Entity;
import java.io.Serializable; import java.util.List; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table;
@Entity @Table(name = "item") @NamedQueries({@NamedQuery(name = "Item.findAll", query = "SELECT i FROM Item i"), @NamedQuery(name = "Item.findByItemId", query = "SELECT i FROM Item i WHERE i.itemId = :itemId"), @NamedQuery(name = "Item.findByName", query = "SELECT i FROM Item i WHERE i.name = :name")}) public class Item implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "item_id") private Integer itemId; @Basic(optional = false) @Column(name = "name") private String name;
@JoinTable(name = "item_cat", joinColumns = {@JoinColumn(name = "item_id", referencedColumnName = "item_id")}, inverseJoinColumns = {@JoinColumn(name = "cat_id", referencedColumnName = "cat_id")})
@ManyToMany
private List<Category> categoryCollection;
public Item() {
}
public Item(Integer itemId) {
this.itemId = itemId;
}
public Item(Integer itemId, String name) {
this.itemId = itemId;
this.name = name;
}
public Integer getItemId() {
return itemId;
}
public void setItemId(Integer itemId) {
this.itemId = itemId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Category> getCategoryCollection() {
return categoryCollection;
}
public void setCategoryCollection(List<Category> categoryCollection) {
this.categoryCollection = categoryCollection;
}
}
I am Trying to persist data using these coding but only Category and Item tables are getting field (Category coding are missing here those are fine) my assosiative table item_cat is not getting saving data need help ...