2012-03-06 40 views
5

Tôi đang xem xét việc di chuyển ánh xạ liên tục của ứng dụng từ các tệp hbm hibernate sang các đối tượng miền grails. Lược đồ không phù hợp với nhiều quy ước đặt tên cột của Grails, bao gồm tên cột thành phần. Những gì tôi muốn làm là:Cách thay đổi ánh xạ cột được nhúng của Grails

class Foo{ 
    Bar bar 
    static embedded = ['bar'] 
    static mapping = { 
     bar.baz column:'baz' 
     bar.quz column:'qux' 
    } 
} 

class Bar{ 
    String baz, qux 
} 

jira cho vấn đề này. Thật không may nó đã được mở trong gần hai năm mà không có thay đổi. Có cách giải quyết nào cho việc thay đổi các cột trong db này không?

Trả lời

1

Tôi tin rằng cách duy nhất hiện nay là (Grails 2.1) để đưa các bản đồ trong Bar,

class Bar { 
    String bar, quz 

    static mapping = { 
     baz column: "baz" 
     quz column: "quz" 
    } 
} 
2

Thay vì sử dụng các biến nhúng tạo một phong tục ngủ đông loại người dùng cho lớp Bar của bạn. Sau đó bạn có thể ánh xạ kiểu tùy chỉnh để bất cứ tên cột bạn muốn thích:

static mapping = { 
    bar type: BarUserType, { 
     column name: "bar" 
     column name: "quz" 
    } 
} 
0

Một workaround tôi đã tìm thấy là sử dụng @ grails.util.Mixin thay vì nhúng:

@grails.util.Mixin(Bar) 
class Foo{ 
    static mapping = { 
     baz column:'bazz' 
     quz column:'quxx' 
    } 
} 

class Bar{ 
    String baz, qux 
} 
Các vấn đề liên quan