Quelle est la meilleure façon de mapper deux entités dans GORM lorsque la clé primaire d'une table est également une clé étrangère d'une autre table. Ex:Comment mapper des entités dans GORM lorsque pk d'une référence pk d'une autre
Voici une table:
CREATE TABLE `table_a` (
`a_id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`a_id`)
)
Et le pk de cette table 'a_id' est référencé par le tableau suivant:
CREATE TABLE `table_b` (
`b_id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`b_id`),
KEY `b_id_fk` (`b_id`),
CONSTRAINT `b_id_fk` FOREIGN KEY (`b_id`) REFERENCES `table_a' (`a_id`)
)
Comment puis-je mapper les deux entités ci-dessus dans Grails/GORM? Le code suivant ne fonctionnera évidemment pas puisque GORM lancera une exception en disant "colonne répétée dans le mapping pour l'entité".
class TableB {
TableA tableA
static belongsTo = [TableA]
static mapping = {
id column:"b_id"
version false
tableA column:"b_id"
}
static constraints = {
tableA unique: true
}
}
Note: J'utilise Grails 1.3.7 mais peut passer à une version plus récente si ce problème est un problème qui a récemment été fixée. S'il vous plaît, faites-moi savoir.
pouvez-vous changer le schéma ou devez-vous avoir la clé primaire aussi le fk? – hvgotcodes
Je sais que le schéma n'est pas conforme aux meilleures pratiques. Mais c'est une base de données héritée que je ne peux pas changer. – sul