Miałem podobny problem, ale nie był on związany z kolejnością pól ID w bazie danych.
Po kilku poszukiwaniach znalazłem to wskazując na fakt, że Loby w stanie hibernacji są traktowane jako OID, chyba że określono inaczej.
Oznacza to, że Hibernate spróbuje umieścić Lob w Long a, a tym samym wytworzy ten wyjątek PSQLException:Zła wartość dla typu long
Sposobem na określenie, że Lob ma być traktowany jako tekst, jest dodanie adnotacji do pola
@Lob
@Type(type = "org.hibernate.type.TextType")