public UUID save(User obj) throws SQLException {
        UUID id = null;
        Connection conn = null;
        CallableStatement stmt = null;

        try {
            conn = getConnection();

            String query = "{call spr_saveUser( ?, ?, ?, ?, ?, ?, ? )} ";

            // Get a statement from the connection
            stmt = conn.prepareCall(query);

            String tmpId = null;

            if( obj.getUserId() != null ) {
                tmpId = obj.getUserId().toString();
            }

            int i = 1;
            stmt.setString(i++, tmpId);
            stmt.setString(i++, obj.getLastname());
            stmt.setString(i++, obj.getFirstname());
            stmt.setString(i++, obj.getEmail());
            stmt.setString(i++, obj.getPhone());
            //stmt.setBoolean( i++, obj.isActive() );
            stmt.setString(i++, obj.getRoleId().toString());
            stmt.registerOutParameter(i, Types.NVARCHAR);

            // Execute the query
            stmt.execute();

            String savedId = stmt.getString("savedId");

            if (savedId != null) {
                id = UUID.fromString(savedId);

                obj.setUserId(id);
            }
        } catch (SQLException ex) {
            LOGGER.error(ex.getMessage());

            throw new SQLException(ex);
        } finally {
            if (stmt != null) {
                stmt.close();
            }

            if (conn != null) {
                conn.close();
            }
        }

        return id;
    }