2016-03-29 18 views
0

MySQL db'yi kullanıyorum ve grails ile çalışıyorum. Ben 2 tablo yarattım ve tablolar arasında bir yabancı anahtar sunan bir sütun var (hasMany kullandım). Bu benim genel olarak ne var: yabancı anahtar boş Person_ID yüzdenGORM zaten var olan nesneye yabancı anahtar değeri ekleyin

class Address { 

    static belongsTo = Person 
    static mapping = { 
    street defaultValue: "'s'" 
    city defaultValue: "'c'" 
} 
} 

ve

class Person { 
    private String firstName 
    private String lastName 

    Set<Address> addresses; 
    static hasMany = [addresses: Address] 

    static mapping = { 
    table 'people' 
    firstName column: 'fn' 
    addresses lazy: false 
    addresses column:'Person_ID',joinTable: false 
    } 
} 

Zaten db bazı Adres değerlerini oluşturdu. Şimdi bunu güncellemeye çalışıyorum ve Başarıya ulaşamayan Kişiler ile ilişkiler kuruyorum. Herhangi bir nedenle, nesne db'ye kaydedildikten sonra ilişkileri güncelleyemiyorum. yollarından

Bir ben denedim

Address a1 = new Address(); 
    a1.setCity("Tester1"); 
    a1.setStreet("Tester1"); 

    Person pdb = new Person(firstName: "SupermanB", lastName: "BatmanB"); 
    pdb.save(flush:true); 

    pdb.addToAddresses(a1).save(flush:true); 
    pdb.save(flush:true); 

Zaten db kaydedilmiş bir nesneye ilişkiyi ayarlayabilirsiniz nasıl herkes bir fikri var mı?

Teşekkür

+0

neden 2 hatlarında 'addresses' eşleme koydun:

kolay çözüm Adres sınıf biraz değiştirmek olurdu? – injecteer

cevap

0

Sana hasManyjoinTable olmadan ve hiçbir geri-ref olabilir sanmıyorum.

class Address { 

    static belongsTo = [ person:Person ] 
    ... 
}