Gracias al amable comentario de @JBNizet, descubrí que el problema no estaba en los comportamientos extraños de UUID, sino que Hibernate no escapa a los identificadores de forma predeterminada.
En realidad, hay tres soluciones fáciles a la pregunta:
-
No use palabras clave reservadas, cambie el nombre de la tabla a otra cosa.
-
Escape manualmente el nombre de la tabla (como
@Table(name = "\"user\"")
en HUser.java). -
Agregar línea
hibernate.globally_quoted_identifiers=true
a su configuración. Me pregunto por qué no estrue
de forma predeterminada... Consulte esto para más detalles.