2013-10-04 11 views
5

Tôi có một tên miền như sau:Grails/Hibernate: Không có hàng với định danh cho tồn tại

class Author { 
    String id 
    static hasMany = [accounts: Account] 
    static belongsTo = Account 
    static mapping = { 
     accounts joinTable: [name: "SOMETABLE", key: 'SOMEFIELD'], 
       ignoreNotFound: true 
    } 
    static constraints = {} 
} 

tôi nhận được lỗi sau khi có hồ sơ được tìm thấy. Tôi đã thử ignoreNotFound, nó không hoạt động.

error message: accounts=org.hibernate.ObjectNotFoundException: 
No row with the given identifier exists: 
[com.myapplication.Account#123465489785] 

điều đó xảy ra khi cố gắng chọn tham gia 2 bản ghi mà bạn không có quyền truy cập để chèn vào db. Có cách giải quyết nào không?

Trả lời

2

điều đó có nghĩa là không có hàng nào trong bảng Account của bạn có id 123465489785. Tác giả của bạn có một tài khoản với id 123465489785. Hibernate không thể tìm thấy nó để nó ném một ngoại lệ. nếu một tài khoản mới của nó làm cho id trên tài khoản null để hibernate biết một hàng mới của nó.

+0

Tôi hiểu rằng điều đó có nghĩa là không có hàng nào trong bảng Tác giả tồn tại. Nhưng có cách nào để yêu cầu grails bỏ qua nó? Chúng ta có thể nói với grails chỉ trả lại một danh sách trống không? – user2679352

+1

bạn đang cố gắng làm gì? lưu một tác giả? –

+0

Đây là cơ sở dữ liệu kế thừa. Tôi chỉ đọc hồ sơ. Chúng tôi sẽ không cập nhật bất kỳ hồ sơ nào. Có một mối quan hệ nhiều-nhiều, đó là lý do tại sao tôi phải chỉ định joinTable. – user2679352

Các vấn đề liên quan