Zurzeit verwenden Sie GORM, um eine Verbindung zu zwei Datenbanken herzustellen: POSTGRES AND sqlite (mit einem Code-Schalter, um den zu verwendenden zu wählen). Ich habe eine 2-Datenbanktabellen in meinem Schema definiert, die wie folgt aussehen:GORM many2many Preload-Fehler
type TableClient struct {
Model
Synchronised bool
FacilityID string `gorm:"primary_key"`
Age int
ClientSexID int
MaritalStatusID int
SpecificNeeds []TableOptionList`gorm:"many2many:options_specific_needs"`
}
type TableOptionList struct {
ID int `gorm:"primary_key"`
Name string
Value string
Text string
SortKey int
}
Früher hätte ich im Zusammenhang Tabelle vorzuladen mit Code wie folgt:
var dbClient TableClient
Db.Where("facility_id = ? AND client_id = ? AND id = ?;", URLFacilityID, URLClientID, URLIncidentID).
Preload("ClientSex").
Preload("MaritalStatus").
Preload("CareTakerRelationShip").
Preload("HighestLevelOfEducation").
Preload("Occupation").
Preload("SpecificNeeds").
First(&dbClient)
Nun, da Nachschlag schlägt mit einem Syntaxfehler und wenn ich in der SQL erzeugt aussehen, zeigt die folgende SQL generiert wird:
SELECT * FROM "table_option_lists" INNER JOIN "options_specific_needs" ON "options_specific_needs"."table_option_list_id" = "table_option_lists"."id" WHERE (("options_specific_needs"."table_client_id","options_specific_needs"."table_client_facility_id") IN (('one','LS034')))
einfügen, die in die sQLite-Konsole auch mit dem gleichen Fehler fehlschlägt: (in der Nähe „“: Syntaxfehler)
Ich stimme zu. Ich dokumentiere auch einige Bugs darin. Aber reines SQL ist der Weg. –