Et bien sûr, je transpire le problème pendant des heures, je le poste ici, et une minute plus tard...
Quoi qu'il en soit, la réponse est l'élément mappedBy de l'annotation @OneToMany :
@OneToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="member")
@MapKey(name = "name")
private Map<String, Preferences> preferences
= new HashMap<String, Preferences>();
Ce qui a un certain sens :quel champ de l'entité Plusieurs renvoie à l'entité Un ? Même en admettant que la recherche d'un champ @ManyToOne correspondant était trop sujette aux erreurs, je pense que ce qu'ils ont fait (en supposant l'existence d'une table de mappage) est encore pire.