J'ai le schéma suivant dans le DB (simplifié)Est-il possible de mapper un champ dans une entité sans définir d'association?
MainTable(
ID primary key
SOMEFIELD
CODE_FK1 -- references OtherTable1 CODE (without declared foreign key)
CODE_FK2 -- references OtherTable2 CODE (without declared foreign key)
... Other fields used
)
OtherTable1(
CODE primary key
LABEL
... other fields not used
)
OtherTable2(
CODE primary key
LABEL
... other fields not used
)
Je me demande s'il y a un moyen de définir mon entité pour la table principale afin d'utiliser des étiquettes directement de mes autres tables, soit sans définir des entités pour ces autres tables.
Je ne peux pas changer le schéma DB, ce qui est vraiment horrible (il y a des labels/couples de code partout, définis dans plusieurs tables). Et si c'était possible, cette solution permettrait de garder mon code simple, puisque je n'ai pas vraiment besoin de ces autres entités.
Je suppose que cela entraînerait quelque chose comme ça:
@Entity
public class MainEntity{
@Id
private Integer ID;
@Column(name="SOMEFIELD")
private String SomeField;
@SomeAnnotation to Join CODE_FK_1 with OtherTable1.CODE
@SomeAnnotation like @Column(name="LABEL", table="OtherTable1")
private String Label1;
@SomeAnnotation to Join CODE_FK_1 with OtherTable1.CODE
@SomeAnnotation like @Column(name="LABEL", table="OtherTable1")
private String Label1;
}
Merci par avance pour votre aide!
Je doute vraiment si cela est possible avec JPA (sur les relations au niveau des entités avec d'autres entités sont définies, pas la manière d'obtenir les champs dans les entités jointes). Avez-vous considéré ces deux options: a) mappez toutes les tables pertinentes aux entités JPA et effectuez une requête quand vous en avez besoin; b) utiliser JDBC pour simplifier la vie, s'il n'y a pas beaucoup d'interaction DB? –