gpt4 book ai didi

Grails select 不会返回正确的数据

转载 作者:行者123 更新时间:2023-12-01 05:38:52 26 4
gpt4 key购买 nike

这是 this 的延续题。

我有一个 Address包含基本街道地址信息的类。我也有 User具有属性 physicalAddress 的类, mailingAddress , cargoDestinations , 和 cargoSources . User类看起来像这样:

class User {

String username
String password
String firstName
String lastName
String businessName
String phoneNumber
Address physicalAddress
Address mailingAddress
static hasMany = [accounts:Account, cargoSources:Address, cargoDestinations:Address, cargoes:Cargo, loadsLogged:Load, loadsDelivered:Load]
Set accounts, cargoSources, cargoDestinations, cargoes
static mappedBy = [loadsLogged:"loggedBy", loadsDelivered:"deliveredBy"]

//some other stuff after this

Address类看起来像这样:
    class Address {

static belongsTo = [user:User]

String streetAddress
String city
String state
String zip

BigDecimal taxRate

//some other stuff after this

我跟着教程 here大多数情况下。在第 5 步中,我的模板如下所示:
<g:select
from="${account.user.cargoDestinations}"
name="cargoDestinations" value="">
</g:select>

问题是,而不是只返回 cargoDestinations ,模板返回与该用户关联的所有地址。如果我改变 from="${account.user.cargoDestinations}"from="${account.user.physicalAddress}"from="${account.user.mailingAddress}"我得到了预期的结果,所以我知道我的问题与 cargoDestinations 的方式有关。变量被映射。如何在不过多更改类文件的情况下解决此问题?

最佳答案

您映射地址的方式,它们都链接回 user_id 列上的用户。您需要向地址添加一些字段以区分它们与用户的关系,类似于您映射负载的方式。例如:

class Address {
static belongsTo = [cargoSourceFor: User, cargoDestinationFor: User]

...
}

class User {

...

static hasMany = [cargoSources:Address, cargoDestinations:Address]
static mappedBy = [cargoSources: "cargoSourceFor", cargoDestinations: "cargoDestinationFor"]

...
}

如果你熟悉 SQL,做一个 grails schema-export看着 target/ddl.sql在设置映射时会很有帮助。

关于Grails select 不会返回正确的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6984989/

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