我目前正在尝试基于旧的 MySQL 数据库创建一个新的 Grails 应用程序。应用程序应该只读取信息。具体的 DB 模式为特定的域类使用一个表,每个类层次结构,以及一个属性类,以向这些类添加新的所需信息。
目前我无法检索transation. 也不例外,但我也无法访问该字段properties。我可能面临的一个问题是,这个词properties是 Grails 的域字段的关键字。但由于特定的遗留表命名,我需要使用它。
遗留表被命名为transaction和transaction_properties。一个transcation可以有多个transaction_properties。关联是通过表transaction_id中的键完成的transaction_properties。
表事务
id  bigint(20)
transaction_id  varchar(255) (bad naming here, transaction_id is used to store additional meta information)
表transaction_properties
transaction_id  bigint(20) -> referencing to transation.id
property_value  varchar(255)
property_key    varchar(32)
etc.
领域类事务
class Transaction {
static hasMany = [properties : TransactionProperty]
static constraints = {
    //   transactionProperty unique: true
}
static mapping = {
    table "transaction"
    version false
    columns {
        id column : "id"
        beginDate column : "start"
        endDate column : "end"
        type column : "DTYPE"
        amount column : "total_amount"
        metaId column : "transaction_id"
        purchase column : "purchase_id"
        service column : "service_id"
        origin column : "origin_id"
        properties column : "id"
    }
}
Long id
Date beginDate
Date endDate
String type
String amount
String metaId
Purchase purchase
Origin origin
Service service
  etc.
  }
域类TransactionProperty
  class TransactionProperty {
static mapping = {
    table "transaction_properties"
    version false
    columns {
        id name : "transaction_id"
        key column : "property_key"
        value column : "property_value"
    }
}
String value
String key
Long id
def asString(){
    return "${key} = ${value}"
}
   }