TousGORM 1-à-plusieurs - 3 tables créées plutôt que 2
Mon problème est que je suis en train de créer un 1-à-plusieurs dans Gorm et attendre 2 tables de base de données à créer sous forme d'objets de support . 3 sont créés ce qui rend les requêtes SQL trop complexes.
J'ai créé une variante proche du 1 à plusieurs dans la documentation GORM:
class Status {
List errorMessage
static hasMany = [errorMessage:ErrorMessage]
}
et la classe de message d'erreur:
class ErrorMessage {
String message
static belongsTo = Status
}
Je m'y attendais pour créer deux bases de données tables:
CREATE TABLE status {
ID NUMBER(19,0),
VERSION NUMBER(19,0),
//other fields
}
CREATE TABLE error_message {
ID NUMBER(19,0),
VERSION NUMBER(19,0),
STATUS_ID NUMBER(19,0),
MESSAGE VARCHAR(255)
//other fields
}
mais en fait il veut une troisième table,
CREATE TABLE status_text {
status_text_id NUMBER(19,0),
text_idx NUMBER(19,0),
text_id NUMBER(19,0)
}
Ajout d'état à la ErrorMessage (un hack que je ne veux pas ErrorMessage d'avoir une référence au statut) classe supprime la troisième table mais conserve la deuxième clé étrangère entraînant l'objet enfant de texte ayant deux domaines clés étrangers . Ce que je veux est simple - juste un ensemble d'objets attachés au parent sera supprimé quand il est - des pensées que je fais mal?
Merci
Si vous ne voulez pas faire référence '' status' dans ErrorMessage' (sauf de 'belongsTo', bien sûr), la table de jointure est nécessaire ... – robbbert