Tôi có hai tên miền là một phần của tàu quan hệ một-nhiều. Tôi đã tự hỏi làm thế nào tôi có thể truy vấn các con cho cha mẹ FK? dưới đây là psuedo-mã cho cha/conGrails, cách tìm bằng bản ghi bằng khóa ngoài
phụ huynh:
class AlumProfile {
String firstName
String lastName
static hasMany = [alumLanguage : AlumLanguage]
static mapping = {
cache true
id generator: 'assigned'
columns {
firstName type:'text'
lastName type:'text'
}
//
}
static constraints = {
firstName (nullable:true)
lastName (nullable:true)
}
}
Child:
class AlumLanguage {
String name
String level
static belongsTo = [alumProfile:AlumProfile]
static mapping = {
cache true
columns {
name type:'text'
level type:'text'
}
}
static constraints = {
name(nullable:true)
level(nullable:true)
}
}
Mặc dù tôi không tạo ra một cách rõ ràng FK, grails chăm sóc của việc tạo ra nó MySQL DB một mình. Tuy nhiên, khi tôi muốn truy vấn con của FK như thế này:
if(AlumLanguage.findByNameAndAlumProfileId(language.'language'.toString(), 'jIi-hRi4cI')==null){
//do something
}
tôi nhận được một lỗi: Không có tài sản tìm thấy cho tên [alumProfileId] cho lớp [lớp mgr.AlumLanguage]
gợi ý Bất kỳ trên làm thế nào để thực hiện điều này?
nhờ jason
này trả về một danh sách. tôi cần phải có đối tượng AlumLanguages được trả về, để tôi có thể chỉnh sửa/xóa các phiên bản của nó – jason
Cập nhật. Tuy nhiên, nếu bạn định làm theo cách đó, bạn có thể muốn khai báo AlumProfile.alumLanguage thành một 'Set' để thực thi các thành viên duy nhất. –
Cảm ơn, điều đó đã làm được! ngoài sự tò mò, bạn có ý gì bằng cách "khai báo AlumProfile.alumLanguage như một Set"? Cảm ơn một lần nữa! – jason