gpt4 book ai didi

grails - GORM mappedBy 和 mapping 的区别

转载 作者:行者123 更新时间:2023-12-02 06:56:40 25 4
gpt4 key购买 nike

在 GORM 中,mappedBymapping 有什么区别?

static mapping = {
...
}

static mappedBy = {
...
}

最佳答案

映射
mapping 只是告诉 GORM 将一个或多个域属性显式映射到特定的数据库列。

class Person {
String firstName

static mapping = {
table 'people'
id column: 'person_id'
firstName column: 'First_Name'
}
}

例如,在这种情况下,我指示 GORM 将 id 属性映射到 people 表的列 person_idfirstName 属性到同一表的 First_Name 列。

ma​​ppedBy
mappedBy 让您控制类关联的单向性或双向性。来自 Grails documentation :

class Airport {
static mappedBy = [outgoingFlights: 'departureAirport',
incomingFlights: 'destinationAirport']

static hasMany = [outgoingFlights: Route,
incomingFlights: Route]
}

class Route {
Airport departureAirport
Airport destinationAirport
}

Airport 定义了两个双向一对多关联。如果你不指定 mappedBy 你会得到一个错误,因为 GORM 无法推断关联另一端的两个属性中的哪一个(departureAirportdestinationAirport ) 每个一对多应该关联。

enter image description here

换句话说,它可以帮助您消除来自双向关联的歧义。

关于grails - GORM mappedBy 和 mapping 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29921242/

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