关于边界
一对多,如用户与宠物
在用户模型
ent/schema/user.go
func (User) Edges() []ent.Edge{
return []ent.edge{
edge.To("pets",Pet.Type),
}
}
在宠物模型
ent/schema/pet.go
func (Pet) Edges() []ent.Edge {
return []ent.Edge{
edge.From("user", User.Type).
Ref("pets").
Unique(),
}
}
补充说明:
- 在上述代码中,To()和Ref()中的内容必须一致。
- 当不使用默认生成的关系字段,需要指定关系字段时
- 只需在子对象中,加上Field()方法即可,如 edge.From("user",User.Type).Ref("pets").Field("user_id").Unique()。
- 新增字段(user_id)
文章讲述了在Go语言的ent库中如何定义和管理一对多的关系,例如用户与宠物的关系。在用户模型中,使用`To()`方法指定了到宠物的边,而在宠物模型中,使用`From()`和`Ref()`方法建立了从用户到宠物的引用,同时强调了`To()`和`Ref()`的内容需一致。若需要自定义关系字段,可以添加`Field()`方法,如指定`user_id`作为外键。
735

被折叠的 条评论
为什么被折叠?



