gpt4 book ai didi

hibernate - 避免在grails中加入表

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

考虑以下简化情况:
我的产品可以具有服务器属性,属性值取决于国家/地区。

当我以标准方式对属性域类进行建模时,如下所示。这意味着属性可以具有取决于国家的值,并且值可以属于不同的属性。 n:m关系产生一个单独的联接表。

class Attribute  {
String id
String name

static hasMany = [attributeValues: AttributeValue]

static mapping = {
attributeValues joinTable: [name: 'attribute_values', key: 'attribute_id']
}
}


class AttributeValue {
String id
Locale language
String value
}

现在的问题是,是否可以在没有连接表的情况下在GORM中对此建模?

使用SQL native,这没有问题。在数据库中,这将导致如下所示的结构。
联接应从列attribute.attribute_key到列attribute_value.attribute_key

enter image description here

最佳答案

数据库中的联接表

create view JOIN_ATTRIBUTE_VALUE_V as
(!!the sql u select upown!!)

然后创建grails.domain类
class joinAttributeValueV {
String id
String attributeKey
Locale language
String value

static mapping = {
table 'JOIN_ATTRIBUTE_VALUE_V'
id column:"id" ,comment:""
attributeKey column:"ATTRIBUTE_KEY" ,comment:""
language column:"LANGUAGE" ,comment:""
value column:"VALUE" ,comment:""
}
}

使用GORM获取域类

关于hibernate - 避免在grails中加入表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55611835/

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