Aram Kirakosyan
Aram Kirakosyan

Reputation: 1

Grails domain without primary key

Anybody knows how to map grails domain class to MSSQL entity witch has not primary key

class BRCategoryInt {

    String lang
    String name

    static hasMany = [category: BRCategory]

    static constraints = {
    }

    static mapping = {
        table "brCategoryInt"
        version false

        //id        column: ""
        category  column: "CategoryId"
        lang      column: "Lang"
        name      column: "Name"
    }
}

In legacy database we have not primary key, just have an one FK CategoryId. Any help will be very appreciated.

Upvotes: 0

Views: 1907

Answers (3)

eugene82
eugene82

Reputation: 8832

You cannot map such domain in Grails. To read/write such legacy tables try groovy Sql.

Upvotes: 2

James Kleeh
James Kleeh

Reputation: 12228

It is my understanding that in theory it is possible to map to a table without a primary key, however I have yet to see it actually done. I have struggled with attempting it for days with nothing to show.

Short answer: Not possible in the current version of Grails.

Upvotes: 0

Michael J. Lee
Michael J. Lee

Reputation: 12416

You should really always have a primary key on your data and I would recommend adding one just to keep everyone happy. If you cannot simply add a auto-increment id to your table you could use a composite key. See documentation here. If you cannot do this either then I would consider re-thinking how youe data is laid out.

Upvotes: 2

Related Questions