Reputation: 1689
To create one-to-one relationships in Grails I can do:
class Person {
static hasOne = [address: Address]
}
In this case the Address table has the key to its person. I could also do:
class Address {
static belongsTo = [person: Person]
}
This gives the same result.
What is the difference between my two samples using hasOne
and belongsTo
?
Upvotes: 8
Views: 4610
Reputation: 19682
hasOne
indicates that there is a bi-directional one-to-one relationship where the child table has the parent's foreign key, as in your example.
belongsTo
is used to control cascades by indicating that the class belongs to the specified class. In your example, deleting a given Person
would cascade the delete to any associated Address
es.
Upvotes: 11