gpt4 book ai didi

hibernate - 从 grails 域的属性中获取数据库列名

转载 作者:行者123 更新时间:2023-12-03 08:11:27 25 4
gpt4 key购买 nike

我正在用我的域对象映射一堆遗留表。有没有办法在域类中找到属性的数据库列名(反之亦然)?例如:

class Person {

String firstName
.
.
.
}

有没有办法使用 firstName 取回字符串“FIRST_NAME”或“first_name”?我试过用
GrailsDomainBinder.getMapping(Person).columns

但这只是出于某种原因给了我 id 列。谢谢!

最佳答案

我只是把这段代码扔在一起,所以请不要在风格上打败我。 :-)

尝试将其放入您的 PersonController 中的测试操作方法中并添加我的导入语句和 sessionFactory如下所示:

import org.hibernate.persister.entity.AbstractEntityPersister
import org.codehaus.groovy.grails.commons.DefaultGrailsDomainClass

class PersonController {

// This should get injected by Grails automatically
def sessionFactory

....
def myTestAction() {
def domainClazz = grailsApplication.getClassForName("com.test.Person")

def clazzMetadata = sessionFactory.getClassMetadata(domainClazz)
def AbstractEntityPersister abstractEntityPersister = (AbstractEntityPersister) clazzMetadata
def grailsDomainClazz = new DefaultGrailsDomainClass(domainClazz)

def grailsDomainClazzProperties = grailsDomainClazz.getProperties()

grailsDomainClazzProperties.each() {
println "Property Name: ${it.name}"
abstractEntityPersister.getPropertyColumnNames(it.name).each() {
println "DB Column: ${it}"
}
}
}
}

关于hibernate - 从 grails 域的属性中获取数据库列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12288650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com