E claro, suo o problema por horas, posto aqui, e um minuto depois...
De qualquer forma, a resposta é o elemento mappedBy da anotação @OneToMany:
@OneToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="member")
@MapKey(name = "name")
private Map<String, Preferences> preferences
= new HashMap<String, Preferences>();
O que faz certo sentido:qual campo na entidade Muitos aponta de volta para a entidade Um? Mesmo permitindo que procurar um campo @ManyToOne correspondente fosse muito propenso a erros, acho que o que eles fizeram (supondo a existência de uma tabela de mapeamento) torna ainda pior.