2 Replies Latest reply on Apr 20, 2007 2:40 PM by Thomas Barry

    Update entity in authenticate method

    Thomas Barry Newbie

      What is the correct way to update an entity in my authenticate method (called from Identity)? I want to update the user entity with a 'last connected' date. As far as I can tell, I have to handle the transaction manually, like this:

      public class Authenticator {
       EntityManager entityManager;
       @Out(scope=ScopeType.SESSION, required=false)
       SiteUser currentUser;
       @In(create=true) @Out
       SessionPreferences prefs;
       public boolean authenticate() {
       Query q = entityManager.createQuery("from SiteUser su where upper(username) = upper(:username) and password = :password and active = true");
       q.setParameter("username", Identity.instance().getUsername());
       q.setParameter("password", Identity.instance().getPassword());
       if (q.getResultList().size() == 1) {
       currentUser = (SiteUser)q.getSingleResult();
       try {
       UserTransaction utx = Transactions.getUserTransaction();
       currentUser.setLastConnected(new java.util.Date());
       } catch (Exception e) {
       log.error("Exception updating user: " + e.getMessage());
       return true;
       return false;

      Is there a better way to do it?