返回顶部
首页 > 资讯 > 后端开发 > GO >拥有许多实现的许多部分
  • 417
分享到

拥有许多实现的许多部分

2024-04-04 23:04:10 417人浏览 泡泡鱼
摘要

积累知识,胜过积蓄金银!毕竟在golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《拥有许多实现的许多部分》,就带大家

积累知识,胜过积蓄金银!毕竟在golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《拥有许多实现的许多部分》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我需要注册一组实现相同接口的实体,但它们必须注册在不同的表中,因为它们具有不同的结构。

我正在寻找与 jpa 实现的行为类似的行为: hibernate继承映射

以下示例经过简化。

type Person struct {
    ID         uint64 `gORM:"primarykey"`
    Name       string
    Identifier []identificable
}

type identificable interface {
    GetValue() string
}

type DNI struct {
    ID       uint64 `Gorm:"primarykey"`
    Value    string
    PersonID uint64
}

func (dni DNI) GetValue() string {
    return dni.Value
}

type DrivingLicense struct {
    ID       uint64 `gorm:"primarykey"`
    Value    string
    PersonID uint64
}

func (licence DrivingLicense) GetValue() string {
    return licence.Value
}

func main() {
    db := getDB()
    dni1 := DNI{}
    dni1.Value = "testdni1"
    drivingLicense1 := DrivingLicense{}
    dni1.Value = "License1"

    person := Person{}
    person.Name = "test_name"
    person.Identifier = []identificable{dni1, drivingLicense1}

    result := db.Create(&person)
    if result.Error != nil {
        fmt.Sprintf(result.Error.Error())
    }
}


正确答案


GORM 从结构名称中派生出表名称,与接口无关。

每个结构都会放入自己的表中。

请提供更多代码和详细信息,说明您到底在哪里遇到了问题。

今天关于《拥有许多实现的许多部分》的内容介绍就到此结束,如果有什么疑问或者建议,可以在编程网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

您可能感兴趣的文档:

--结束END--

本文标题: 拥有许多实现的许多部分

本文链接: https://lsjlt.com/news/596729.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作