Mysql
 sql >> Base de données >  >> RDS >> Mysql

Le cas de carte un-à-plusieurs le plus simple dans Hibernate ne fonctionne pas dans MySQL

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.