Eu tive um problema semelhante, mas não estava relacionado à ordem do campo ID no banco de dados.
Depois de algumas pesquisas, encontrei isso apontando para o fato de que Lobs no Hibernate são tratados como OIDs, a menos que especificado de outra forma.
Isso significa que o Hibernate tentará colocar um Lob em um Long e, portanto, produzirá essa exceção PSQLException:Bad value for type long
A maneira de especificar que o Lob deve ser tratado como texto é anotando o campo
@Lob
@Type(type = "org.hibernate.type.TextType")