Ich benutze MySQL db und arbeitet mit Grails. Ich habe 2 Tabellen erstellt und ich habe eine Spalte, die einen Fremdschlüssel zwischen den Tabellen darstellt (ich habe hasMany verwendet). Dies ist, was ich im Allgemeinen:GORM hinzufügen Fremdschlüssel Wert zu bereits vorhanden Objekt
class Address {
static belongsTo = Person
static mapping = {
street defaultValue: "'s'"
city defaultValue: "'c'"
}
}
und
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
}
}
ich bereits einige Adresswerte in der db erstellt, so dass die Fremdschlüssel person_id null ist. Jetzt versuche ich, es zu aktualisieren und Beziehungen zu Person ohne Erfolg zu setzen. Aus irgendeinem Grund kann ich die Beziehungen nicht aktualisieren, sobald das Objekt in der DB gespeichert ist.
Einer der Wege, habe ich versucht, es
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);
Hat jemand eine Idee, wie ich Bezug auf ein Objekt festlegen kann, die bereits in der DB gespeichert?
Dank
warum hast du 'addresses' Mapping in 2 Zeilen setzen? – injecteer