1 Reply Latest reply: Jun 3, 2011 5:52 AM by Leo van den berg RSS

Seam Delete Method no working - Is Something Wrong?

Olalekan Ogunleye Newbie
Hi All,

I have tried everything possible but it seems like its not working. May be I am doing something wrong I don't know but can someone please help point me to anything that I am doing wrong.
Before I was using ordinary seam and when I used this method to delete it was working fine by deleting the data from my database.

I have switched to seam framework where I used Home and Entity and I wanted to use this delete method but it is not working. I tried also to used the remove method from and It is not working. Below is the error and the error log that I am getting. Can somebody please tell me what I am doing wrong or point me to an example that show how this is done.

Thank you


Delete Method

@Name("subscriberList")
public class UserList extends EntityQuery<Subscriber> implements UserListInterface{

private EntityManager entityManager;

       @DataModelSelection
     @Out(required=false)
     private Subscriber subscriber;


        @DataModel
     List<Subscriber> subscribers;

        @SuppressWarnings("unchecked")
     @Factory("subscribers")
     public void subscriberList(){
          System.out.println("SubscriberList called");
          subscribers = entityManager.createQuery("Select s from Subscriber s").getResultList();
          
     }



public void deleteUser() {
          subscriber = new Subscriber();
          subscriber = entityManager.find(Subscriber.class, subscriber.getSubscriberId());
          subscribers.remove(subscriber.getSubscriberId());
          entityManager.remove(subscriber);
          subscriberList();

     }

}

Interface

import javax.ejb.Local;
@Local
public interface UserListInterface {
     //public boolean delete(Subscriber deleteSubscriber) throws SQLException;
     public void deleteSubscriber();
     public void showDetails();

}




.xhtml
</s:link> |
                <s:link id="delete" value="Delete" action="#{subscriberList.deleteSubscriber}" onclick="return confirmDelete()">

</s:link>
  • 1. Re: Seam Delete Method no working - Is Something Wrong?
    Leo van den berg Master

    Hi,


    hi look closely to your code again and see my remarks:




    @Transactional // Should be inside a Transaction !!
    public void deleteUser() {
       // subscriber = new Subscriber(); // You're creating a new object, and then ask the database to find it?
      subscriber = entityManager.find(Subscriber.class, subscriber.getSubscriberId()); // If you take out the previous lijne, it will find the object 
      subscribers.remove(subscriber.getSubscriberId()); // Is this a reference to the ID, should be a reference to a subscriber
      entityManager.remove(subscriber);
      entityManager.flush(); // add this line if you have manual flushing
      subscriberList();
    
         }
    
    }
    



    Hopefully this helps,


    Leo