Son zamanlarda Golang'ı kullanmaya başladım ve GORM'i bir ORM olarak denemeye karar verdim. Çoğu şeyde oldukça iyi çalışır, ancak çoğu ORM bazen sınırlı. Neyse ki veritabanı/sql'e çok iyi bağlanır, böylece kolayca özel sorgulamalar yapabilirim.Gorm Golang bir koleksiyon getiriyor ve onun ilişkileri
Garajda bunu yapmanın başka bir yolu olup olmadığını merak ediyorum: Ben bir yapı var Şirketler, Şirketler bir çok ilişkilere, e-postalara, adreslere ve telefonlara sahiptir. Şirketlerin listesini ve ilgili bilgilerini almak için aşağıdaki kodu kullandım. Gorm'ın Preload fonksiyonunu kullanıyorum.
db.DBAccess.
Model(&companies).
Count(&dbInfo.Count).
Order("companies.id asc").
Offset(offset).
Limit(length).
Preload("Addresses").
Preload("Phones").
Preload("Emails").
Find(&companies)
Bu, gayet iyi çalışır. Ancak, Önyükleme işlevi olmadan bunu gerçekleştirmenin başka bir yolu olduğunu hissediyorum. Herhangi bir fikir? (Gerekirse sadece /) the documentation gösterildiği gibi
Aklında ne var? Genelde bir sorgu geri çağırma uygulayabilirsiniz, ama bu çabaya değer olduğunu sanmıyorum. Otomatik Tempo yüklemesi mümkün değildir, çünkü yapı alanları üzerinde bir müdahale mekanizması yoktur. – 0x434D53
Modellerden bir örnek verebilir misiniz? İlişki doğru bir şekilde belirtildiği sürece, bunları "Önyükleme" ye açık bir çağrı olmadan yüklemek zorunda kalırdım. Mevcut nesneyle yabancı anahtar ilişkileri olan birçok öğeyi tutması gereken boş dizileri olan bir nesneyi döndürmektense, yinelemeli bir örneğe neden olan "CascadingRead" gibi bir pakete bir seçenek eklenmemelidir. – evanmcdonnal