No estoy seguro de entender este extraño diagrama ... RegionLanguage tiene algún tipo de clave foránea que apunta a Region.id, ¿lo tomo? Si Region tiene solo una columna (como se muestra en el 'diagrama'), simplemente puede asignar solo 'RegionLanguage' y solo tendrá una entidad como usted quería --- sin pérdida de información;).
Pero en serio, ¿cómo lo querrías mapear? ¿Usted quiere tener algo como esto:
class Region {
//.. the missing fields not shown in diagram
List<String> languages; // take only language to avoid creating separate entity for region language
}
o menos así:
class RegionInnerJoinRegionLanguage {
// all fields from Region
// all fields from RegionLanguage
}
En cualquier caso, usted no ha dicho cómo el resto de las tablas se unen con sus tablas i18n. Según su descripción, supongo que todas las tablas tienen fk en RegionLanguage. No estoy seguro de para qué se usa la tabla Region en el gran esquema de cosas. Supongo que es solo para agrupar los idiomas ... Me imagino que esto 'modelos' Suiza (una 'región' 4 idiomas) ... ¿Pero qué vas a hacer con los idiomas que se hablan en varias regiones? ¿Vas a tener varios idiomas en francés, inglés, etc. (uno para cada región) y todos los datos multiplicados para cada uno de esos?
Sé que no pides esto ... Creo que simplificaste demasiado tu estructura de datos para esta pregunta ... Tanto que es difícil adivinar lo que realmente quieres lograr.
En cualquier caso, si desea utilizar la lista de enfoque de cadenas, puede intentar esto:
@ElementCollection
@CollectionTable(name="RegionLanguage",
[email protected](name="regionID") // or whatever... it's not on your diagram.
)
@Column(name="langage")
private List<String> langages;
Todavía no entiendo por qué usted quiere poner las dos tablas en una sola entidad .. . Si se trata de datos de "solo lectura", puede intentar crear una vista y mapearla, siempre una "salida";). Pero es (ambos, de hecho) un poco de complicación, en mi opinión, te va a morder en el futuro. Mi consejo es ir con 'simple mapping de OneToMany'.
¿Has encontrado una solución para este problema? Y si es así, ¿te importaría compartirlo (como respuesta)? Nos enfrentamos al mismo problema, todavía no hemos encontrado una buena solución (la mayoría da como resultado consultas N + 1, que definitivamente no queremos). – wimvds
¿Qué proveedor de JPA estás usando? – siebz0r
No entiendo completamente por qué una simple asociación @OneToMany entre Region y RegionLanguage no funciona para usted? –