Golang Go语言中 请教一下 orm 字段复用问题

Golang Go语言中 请教一下 orm 字段复用问题
刚刚接触 go, 发现写 orm 时存在一个问题, 要复用 orm 定义的字段不能如 java / py 一样直接继承父类字段到子类, 例如初始化时需要先初始化子类内嵌的父类,然后再初始化子类,想问下有没有比较优雅的技巧实现重复字段的复用

5 回复

谁说不能复用的。。。
struct A
{
}

struct B{
A

}
这就是复用

更多关于Golang Go语言中 请教一下 orm 字段复用问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


lz 先学习一下继承?

怎样才能叫优雅?
下面的如何?

type A struct{
Num int
}
type B struct {
A
}

func NewB(num int) *B{
b := &B{}
b.Num = num
return b
}

在Go语言的ORM(对象关系映射)框架中,字段复用是一个较为常见的需求,特别是在处理数据库表结构中存在相同或相似字段时。以下是一些处理ORM字段复用的建议:

  1. 结构体嵌套: 如果多个表或模型有相同的字段,可以通过结构体嵌套的方式来实现字段复用。例如,可以创建一个包含共用字段的基础结构体,然后在其他结构体中嵌套这个基础结构体。

  2. 接口定义: 定义一个接口,该接口包含所有需要复用的字段及其方法。然后,让不同的结构体实现这个接口。这种方式在需要多态处理时特别有用。

  3. 使用组合查询: 在某些ORM框架中,可以通过组合查询(如JOIN操作)来避免直接的字段复用,而是通过查询结果的处理来复用字段值。

  4. 自定义ORM逻辑: 对于复杂的字段复用场景,可能需要自定义ORM逻辑。这通常涉及到直接编写SQL查询或在ORM框架的钩子函数中编写自定义代码。

  5. 文档和约定: 无论采用哪种方式,都需要确保团队成员清楚字段复用的逻辑和约定。良好的文档和代码注释是不可或缺的。

总之,ORM字段复用是一个需要根据具体场景灵活处理的问题。在选择实现方式时,需要综合考虑代码的可读性、可维护性以及性能等因素。希望这些建议能对你有所帮助!

回到顶部