Graças ao comentário gentil do @JBNizet, descobri que o problema não estava em comportamentos estranhos de UUID, mas que o Hibernate não escapa de identificadores por padrão.
Na verdade, existem três soluções fáceis para a pergunta:
-
Não use palavras-chave reservadas, altere o nome da tabela para outra coisa.
-
Escape manual do nome da tabela (como@Table(name = "\"user\"")
em HUser.java).
-
Adicionar linhahibernate.globally_quoted_identifiers=true
para sua configuração. Eu me pergunto por que não étrue
por padrão... Veja este para mais detalhes.