Tôi cố gắng để xác định mối quan hệ 1-1 trong 2 cách khác nhau:
Grails 2.0.3Grails 1-1 mối quan hệ
Trường hợp 1:
class Car {
String model
Engine eng
static constraints = {
eng unique: true
}
}
class Engine {
Double capacity
static belongsTo = [car : Car]
}
Trường hợp 2:
class Car {
String model
static hasOne = [eng : Engine]
static constraints = {
eng unique: true
}
}
class Engine {
Double capacity
static belongsTo = [car : Car]
}
trông giống nhau và cả hai cung cấp ánh xạ một chiều một chiều. Thật không may DB có cấu trúc khác nhau trong cả hai trường hợp.
Trường hợp 1:
Trường hợp 2:
Tại sao khi xe hơi và một lần cơ giữ liên kết đến bảng thứ hai.
Sự cố của tôi ở đâu? Khi tôi nhìn vào mã, từ quan điểm DDD, cả hai trường hợp đều cho rằng lớp Car là quan trọng hơn và Car aggregates Engine. Thật không may khi tôi nhìn từ phía DB về trường hợp 2 Tôi thà nói rằng nó là đối diện - Engine aggregate Car. Tất nhiên tôi có thể sử dụng phương pháp tiếp cận đầu tiên, nhưng hầu hết các ấn phẩm tôi đã thấy về grails, hiện tại cách thứ hai để xác định mối quan hệ. Có lẽ tôi đã hiểu lầm điều gì đó và tôi sử dụng hasOne theo cách sai?
Tôi không chắc chắn, nhưng là đây là cách đúng đắn để lập bản đồ .... vì động cơ động cơ giống Nhiều-to-one và sau đó thiết lập các hạn chế đối với độc đáo ...Nó có làm bất kỳ điểm nào không? Bạn có thể đi với hasOne của họ ... –