class Foo {
static mapping = {
table 'foo_table'
}
}
このオブジェクトのインスタンスへの参照がある場合、foo_table
の名前はどのように取得できますか?
class Foo {
static mapping = {
table 'foo_table'
}
}
このオブジェクトのインスタンスへの参照がある場合、foo_table
の名前はどのように取得できますか?
インポートorg.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder
。
ドメインクラスからテーブル名を取得するには:
def tableName = GrailsDomainBinder.getMapping(Foo).table.name
とドメインクラスのインスタンスからテーブル名を取得します
def tableName = GrailsDomainBinder.getMapping(foo.class).table.name
JamesAの答えは動作しますが、場合にのみ、質問のように明示的に定義されている場合はテーブル名。 Javaクラスのソリューションを使用して
def tableName = sessionFactory.getClassMetadata(Foo).tableName
:
あなたはそれがマッピングで指定されたかどうか、テーブル名を取得したい場合、それは
SessionFactory
を使用して行うことができる '文字列getTableName(文字列fullyQualifiedClassName){ 文字列tableNameの= "" IF(fullyQualifiedClassName){ クラスthisClass = Class.forNameの(fullyQualifiedClassName、真、にThread.currentThread()。getContextClassLoader()) DEF domainObjectInstance = thisClass.newInstance() DEF grailsApplication = domainObjectInstance.domainClass.grailsApplication tableNameの= grailsApplication.mainContext.getBean( "のSessionFactory")。getClassMetadata(thisClass)は '} tableNameの }リターン.tableName – CSQ