Mysql
 sql >> Database >  >> RDS >> Mysql

Il caso Map uno-a-molti più semplice in Hibernate non funziona in MySQL

E, naturalmente, ho sudato il problema per ore, lo posto qui e un minuto dopo...

Ad ogni modo, la risposta è l'elemento mappedBy dell'annotazione @OneToMany:

@OneToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="member")
@MapKey(name = "name")
private Map<String, Preferences> preferences
         = new HashMap<String, Preferences>(); 

Il che ha un certo senso:quale campo nell'entità Molteplice rimanda all'entità Uno? Anche ammettendo che la ricerca di un campo @ManyToOne corrispondente fosse troppo soggetta a errori, penso che ciò che hanno fatto (supponendo l'esistenza di una tabella di mappatura) sia ancora peggio.