В вашей третьей попытке вы действительно исправились.
См. рабочий пример здесь: http://plnkr.co/edit/xEERH2zDQ5mPXt9qCl6k?p=preview
Фокус в том, что AngularJS записывает ключи как числа от 0 до n в любом случае и переводит их обратно при обновлении модели.
В результате HTML будет выглядеть некорректно, но модель будет по-прежнему правильно установлена при выборе значения. (т. е. AngularJS переведет '0' обратно в 'var1')
Решение Epokk также работает, однако, если вы загружаете данные асинхронно, вы можете обнаружить, что это не всегда правильно обновлять. Использование ngOptions будет корректно обновляться при изменении области действия.
Это может помочь, для java-программы использовать метод setDB2ClientUser для предоставления значения.
Другое предложение может быть для программы Java, чтобы установить специальный регистр CLIENT_USERID через добавляемый URL-адрес specialRegisters=CURRENT CLIENT_USERID=username;