tags:

views:

39

answers:

1

//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 ...

A: 

If you have an intermediate join table, you need to use the @JoinTable annotation:

@JoinTable(name="item_cat", joinColumns={ @JoinColumn(name="item_id") }, inverseJoinColumns={ @JoinColumn(name="category_id") })
RMorrisey
yes I used @joinTable part something wrong with servlet as I feel
Razor
I guess I didn't understand what the problem was, then. Can you clarify a bit, please, and clean up your post so that you have your code formatted in code blocks?
RMorrisey