Ho avuto un problema simile ma non era correlato all'ordine del campo ID nel database.
Dopo alcune ricerche ho trovato questo indicando il fatto che i Lob in Hibernate sono trattati come OID se non diversamente specificato.
Ciò significa che Hibernate proverà a inserire un Lob in un Long e quindi produrrà quell'eccezione PSQLException:Bad value for type long
Il modo per specificare che il Lob deve essere trattato come testo è annotando il campo
@Lob
@Type(type = "org.hibernate.type.TextType")