En mi entidad, he definido un @ManyToOne(optional = false, cascade = CascadeType.PERSIST) para mi otra entidad. La relación funciona bien.
Ahora estoy usando Postgre DB donde he creado mis tablas y definido claves externas entre columnas en mis tablas. En mi base de datos, esas claves funcionan. Cuando uso mi aplicación Spring Boot con ella, Spring, por alguna razón, crea claves foráneas hash ( fk1sishw42l6qx85h5f3pckl6d0 ) en lugar de usar las que he creado. Al menos creo que los usa.
Espero que esta solución funcione, como funcionó para mí.
@ManyToOne @JoinColumn(name="employeeID") @ForeignKey(name='your_existing_constraint_name') private employee employee;