sql >> Base de Datos >  >> RDS >> Mysql

El caso de mapa más simple de uno a muchos en Hibernate no funciona en MySQL

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.