My problem.
I have two class Client and Book with relations OneToMany set on cascade 
"REMOVE".
Now I must change scope "SESSION" on "CONVERSATION". 
Now (after the change) when i execute delete method on Client i have error. 
When scope is set on SESSION everything is ok but when is set on CONVERSATION 
then I have error. Why? PLEASE HELP! 
How it looks:

Client CLASS

  | package pl.test.client;
  | 
  | import java.io.Serializable;
  | import java.util.HashSet;
  | import java.util.Set;
  | 
  | import javax.persistence.CascadeType;
  | import javax.persistence.Entity;
  | import javax.persistence.GeneratedValue;
  | import javax.persistence.Id;
  | import javax.persistence.OneToMany;
  | import javax.persistence.Table;
  | 
  | import org.jboss.seam.annotations.Name;
  | 
  | @Entity
  | @Name("client")
  | @Table(name="clients")
  | public class Client implements Serializable {
  |     
  |      /**
  |      * 
  |      */
  |     private static final long serialVersionUID = -3074021688217036261L;
  |     
  |     private int id;         
  |     private String name;
  |     private Set<Investment> books = new HashSet<Investment>();  
  |              
  |     @Id @GeneratedValue
  |     public int getId() {
  |             return id;
  |     }
  |     public void setId(int id) {
  |             this.id = id;
  |     }       
  |     @OneToMany(cascade=CascadeType.REMOVE, mappedBy="client")       
  |     public Set<Investment> getBooks() {
  |             return books;
  |     }
  |     public void setBooks(Set<Investment> books) {
  |             this.books = books;
  |     }
  |     public String getName() {
  |             return name;
  |     }
  |     public void setName(String name) {
  |             this.name = name;
  |     }       
  | }
  | 

Book CLASS

  | package pl.test.client;
  | 
  | import java.io.Serializable;
  | 
  | import javax.persistence.Entity;
  | import javax.persistence.GeneratedValue;
  | import javax.persistence.Id;
  | import javax.persistence.JoinColumn;
  | import javax.persistence.Table;
  | 
  | import org.jboss.seam.annotations.Name;
  | 
  | @Entity
  | @Name("book")
  | @Table(name="books")
  | public class Book implements Serializable{
  | 
  |     /**
  |      * 
  |      */
  |     private static final long serialVersionUID = 1624659788044987338L;
  |     
  |     private int id;         
  |     private String bookname;
  |     private Client client;
  |     
  |     @JoinColumn(name="books")
  |     public String getBookname() {
  |             return bookname;
  |     }
  |     public void setBookname(String bookname) {
  |             this.bookname = bookname;
  |     }
  |     public Client getClient() {
  |             return client;
  |     }
  |     public void setClient(Client client) {
  |             this.client = client;
  |     }
  |     @Id 
  |     @GeneratedValue
  |     public int getId() {
  |             return id;
  |     }
  |     public void setId(int id) {
  |             this.id = id;
  |     }
  | }
  | 

And MANAGER who i execute

  | package pl.test.client;
  | 
  | import static javax.persistence.PersistenceContextType.EXTENDED;
  | 
  | import java.io.Serializable;
  | import java.util.List;
  | 
  | import javax.ejb.Remove;
  | import javax.ejb.Stateful;
  | import javax.persistence.EntityManager;
  | import javax.persistence.PersistenceContext;
  | 
  | import org.jboss.seam.annotations.Begin;
  | import org.jboss.seam.annotations.Destroy;
  | import org.jboss.seam.annotations.End;
  | import org.jboss.seam.annotations.Factory;
  | import org.jboss.seam.annotations.In;
  | import org.jboss.seam.annotations.Logger;
  | import org.jboss.seam.annotations.Name;
  | import org.jboss.seam.annotations.Out;
  | import org.jboss.seam.annotations.datamodel.DataModel;
  | import org.jboss.seam.log.Log;
  | 
  | @Stateful
  | @Name("clientManager")
  | public class ClientManagerBean implements Serializable, ClientManager{
  | 
  |     /**
  |      * 
  |      */
  |     private static final long serialVersionUID = 6887290828466517147L;
  |              
  |     @DataModel      
  |     private List<Client> clientsList;
  |     
  |     @In(required = false)
  |     @Out(required = false)
  |     private Client client;
  |     
  |     @PersistenceContext(type=EXTENDED)
  |     private EntityManager em;
  |     
  |     public void delete() {                  
  |             if (client!=null){      
  |                     client = em.merge(client);
  |                     clientsList.remove(client);
  |             em.remove(client);
  |             client=null;
  |           }
  |     }       
  |     @Factory("clientsList") 
  |     public void findClients() {             
  |             clientsList = em.createQuery("from Client 
cli").getResultList();                
  |     }       
  |     @Remove 
  |     @Destroy
  |     public void destroy() {         
  |     } 
  | }
  | 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4005485#4005485

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4005485
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to