EJB3StatelessSessionBean
The remote interface for pass by-value semantics:
public interface RemoteUsermanagement {
User updateUser(User user);
}
An optional local interface for pass by-reference semantics:
public interface LocalUsermanagment {
updateUser(User user);
}
The implementation
import javax.ejb.Local;
import javax.ejb.Remote;
import javax.annotation.security.RolesAllowed;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import org.jboss.annotation.security.SecurityDomain;
@SecurityDomain("mydomain")
@Stateless
@Remote(RemoteUsermanagement.class)
@Local(LocalUsermanagement.class)
public class Usermanagement implements RemoteUsermanagement,
LocalUsermanagement {
@PersistenceContext(unitName="mypersistence")
protected EntityManager em;
@RolesAllowed("UserAdmin")
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public User updateUser(User user) {
return em.merge(user);
}
@RolesAllowed("UserAdmin")
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public updateUser(User user) {
user = em.merge(user);
}
}
Comments