Bir "ürün" inMany "paketleri" olduğu oldukça basit bir hasMany ilişkisi var. Veriyi denemek ve doldurmak için bir script çalıştırıyorum, bu da ilk seferde iyi çalışıyor. Ancak ikinci kaçak, ben gerçi üzerinde sql günlük koymak bir hasManygrails addMany ilişki için yinelenen veri girmek için
package = Package.findBySourceId(packageId) ?: new Package(name:packageName, price:packagePrice, sourceId:packageId).save(flush:true)
product = Product.findBySourceId(productId)
product.addToPackages(package)
product.save(flush:true)
için mümkün değildi çiftleri inputing başlar, arayacağım olduğunu addToPackages çalıştırmak gerektiğini bazen seçme görebilirsiniz koşma. Ürünü seçmek için seçim yapar ve ardından birleştirme tablosuna düz bir ekleme yapar. Ben tam çünkü işin sorguları ancak eklemek istemiyorum
temelde onun
Select -> for the initial package which it finds
Select -> for product which it finds by the product id
Insert -> insert into the join table without even a select to check if an entry exists
Ancak bazen yerine o seçilmiş çalışacaktır takıp maç bulmak ve süreç baştan başlar
gibi. Burada mantık hakkında mantık yok. Unutmayın, binlerce satırlık veriyi çeken bir betik var, bu bir şekilde bir oturum sorunu mu?
Bkz Paket sınıf bakmak gibi özü nedir? SourceId özelliğinde ayarlanmış doğru kısıtlamalar var mı? – Pat
Bir çeşit deterministik olmayan davranışınız var gibi görünüyor. uck ... – netbrain