def grailsApplication
grailsApplication.getDomainClasses().each { it ->
def domain = "${it.packageName}.${it.name}"
println("注册:${domain}")
def ee = EngineeringElement.findByNameAndDataTypeCode(domain, headerCode)
if (!ee) {
ee = new EngineeringElement(name: domain, dataTypeCode: headerCode, parentElement: null)
engineeringElementService.save(ee)
def item = it.clazz //.newInstance()
def colums = GrailsDomainBinder.getMapping(item).columns
colums.each { ite ->
println("填写:${ite}")
}
}
}
结果:
创建基础的DataTypeCode: 域类标题
注册:cn.edu.cup.system.UserRole
填写:user=property[type:null, lazy:null, columns:[column[name:null, index:null, unique:false, length:-1, precision:-1, scale:-1]], insertable:true, updateable:true]
填写:role=property[type:null, lazy:null, columns:[column[name:null, index:null, unique:false, length:-1, precision:-1, scale:-1]], insertable:true, updateable:true]
注册:cn.edu.cup.engineering.DataTypeCode
填写:name=property[type:null, lazy:null, columns:[column[name:null, index:null, unique:true, length:-1, precision:-1, scale:-1]], insertable:true, updateable:true]
填写:description=property[type:null, lazy:null, columns:[column[name:null, index:null, unique:false, length:-1, precision:-1, scale:-1]], insertable:true, updateable:true]
填写:parent=property[type:null, lazy:null, columns:[column[name:null, index:null, unique:false, length:-1, precision:-1, scale:-1]], insertable:true, updateable:true]
注册:cn.edu.cup.physical.PhysicalQuantity
填写:quantityName=property[type:null, lazy:null, columns:[column[name:null, index:null, unique:true, length:-1, precision:-1, scale:-1]], insertable:true, updateable:true]
填写:englishName=property[type:null, lazy:null, columns:[column[name:null, index:null, unique:true, length:-1, precision:-1, scale:-1]], insertable:true, updateable:true]
填写:symbol=property[type:null, lazy:null, columns:[column[name:null, index:null, unique:true, length:-1, precision:-1, scale:-1]], insertable:true, updateable:true]
填写:unitNameISO=property[type:null, lazy:null, columns:[column[name:null, index:null, unique:true, length:-1, precision:-1, scale:-1]], insertable:true, updateable:true]
填写:unitSymbolISO=property[type:null, lazy:null, columns:[column[name:null, index:null, unique:true, length:-1, precision:-1, scale:-1]], insertable:true, updateable:true]
正确的方法:
def columns = GrailsDomainBinder.getMapping(item).columns
columns.each { ite ->
println("填写:${ite.getKey()}")
}
关键是getKey()