说我有类似的东西:
class Foo {
static mapping = {
table 'foo_table'
}
}
如果我引用了此对象的实例,如何获取foo_table
的名称?
答案 0 :(得分:24)
导入org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder
。
从域类中获取表名:
def tableName = GrailsDomainBinder.getMapping(Foo).table.name
并从域类的实例中获取表名:
def tableName = GrailsDomainBinder.getMapping(foo.class).table.name
答案 1 :(得分:13)
JamesA的回答是有效的,但只有在明确定义表名时才会有效,例如问题。
如果您希望获取表名,无论是否在映射中指定了表名,可以使用SessionFactory
完成:
def tableName = sessionFactory.getClassMetadata(Foo).tableName