Как получить имя таблицы, к которой привязан объект GORM? - PullRequest
16 голосов
/ 05 октября 2011

Скажите, у меня есть что-то вроде:

class Foo {
    static mapping = {
        table 'foo_table'
    }
}

Как я могу получить имя foo_table, если у меня есть ссылка на экземпляр этого объекта?

Ответы [ 2 ]

24 голосов
/ 05 октября 2011

Импорт org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder.

Чтобы получить имя таблицы из класса домена:

def tableName = GrailsDomainBinder.getMapping(Foo).table.name 

И чтобы получить имя таблицы из экземпляра класса домена:

def tableName = GrailsDomainBinder.getMapping(foo.class).table.name
13 голосов
/ 28 ноября 2013

Ответ Джеймса будет работать, но только если имя таблицы определено явно, как в вопросе.

Если вы хотите получить имя таблицы, независимо от того, было ли оно указано в отображении, это можно сделать с помощью SessionFactory:

def tableName = sessionFactory.getClassMetadata(Foo).tableName
...