Y, por supuesto, sudo el problema durante horas, lo publico aquí y un minuto después...
De todos modos, la respuesta es el elemento mappedBy de la anotación @OneToMany:
@OneToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="member")
@MapKey(name = "name")
private Map<String, Preferences> preferences
= new HashMap<String, Preferences>();
Lo cual tiene cierto sentido:¿qué campo en la entidad Muchos apunta de nuevo a la entidad Uno? Incluso permitir que buscar un campo @ManyToOne coincidente fuera demasiado propenso a errores, creo que lo que hicieron (asumiendo la existencia de una tabla de mapeo) es aún peor.