一对多关系的Gorm映射/自引用

时间:2016-09-25 13:49:34

标签: grails groovy gorm one-to-many

所以我在下面有我的域名。基本上我想要做的是获取给定WorkOrderSummary的所有demandNumbers。数据结构已经存在于视图中,所以我真的只需要弄清楚如何映射WorkOrder-to-demandNumbers(一对多)关系。因此,一个lab_order_header_id可以包含许多demand_header_ids。

class WorkOrderSummary {

    String workOrderNumber
    Long demandNumbers
    String demandTypeName
    String statusName
    Date needByDate
    String customerName
    Long facilityId
    Long labDestinationId
    Long assetTagQuantity

    static hasMany = [demandNumbers: WorkOrderSummary]


    static mapping = {
        version false
        table name: 'work_orders_v', schema: 'lab'
        id column: 'lab_order_header_id'
        demandNumbers column: 'demand_header_id'
        demandTypeName column: 'demand_type'
        statusName column: 'status'
    }
}

现在这只是让我在lab_order_header_id方面与demand_header_ids一对一。

有什么建议吗?

编辑 - 2016年9月26日

为demandNumbers创建了另一个域类,并标记了belongsTo:

class SalesOrderSummary {

        String demandTypeName

        static belongsTo = [workOrder: WorkOrderSummary]

        static constraints = {
        }

        static mapping = {
            version false
            table name: 'work_orders_v', schema: 'lab'
            id column: 'demand_header_id'
            workOrder column: 'lab_order_header_id'
            demandTypeName column: 'demand_type'
        }
    }

1 个答案:

答案 0 :(得分:1)

如果您希望为给定的 WorkOrderSummary 提供多个 DemandNumbers 你应该替换以下行:

static hasMany = [demandNumbers: WorkOrderSummary]

使用以下行:

static hasMany = [demandNumbers: DemandNumbers]

它应该建立你想要的关系。