Тут однозначно нельзя сказать, т.к. непонятно до конца что у вас за модели PaymentRBS и PaymentPartner.
Но, похоже, что проблема в Integer pool. Если вы сравниваете два Integer надо это делать через equals.
Вот код, иллюстрирующий проблему:
Integer a = 127;
Integer b = 127;
System.out.println(a == b); // true
Integer i = 128;
Integer j = 128;
System.out.println(i == j); //false
System.out.println(i.equals(j)); //true
Если у вас Double, то там нет никакого пула, но ситуация не легче:
Double a = 1998d;
Double b = 1998d;
System.out.println(a == b); // false
System.out.println(a.equals(b)); // true
Вообще, использовать Float или Double в финансовых моделях - грубая ошибка.
Вот пара статей по этому поводу:
https://javarush.ru/groups/posts/2136-ustroystvo-v...
https://javarush.ru/groups/posts/2274-kak-ispoljhz...