xorm:"<- extends" 同时出现时,查询无法获得对应字段 #1755

Open
opened 2020-08-06 08:35:57 +00:00 by lihuabei · 1 comment

https://gobook.io/read/gitea.com/xorm/manual-en-US/chapter-02/4.columns.html
<- only read from database

按照文档这里的说明,应该是查询可见,插入不可见。
目前插入是不可见了,但是查询也同样不见了,甚至于查询单条时会报错。

模型及代码如下:
目前情况是 Get 和 GetList 不能得到想要的数据,但是 Add 可以执行。
如果 User User json:"user" xorm:"<- extends"改成 User User json:"user" xorm:"extends", 那么Get 和 GetList 能得到想要的数据,但是 Add 不可以执行。

type User struct {
	Id string `json:"id"`
	Nickname string `json:"nickname"`
	Avatar string `json:"avatar"`
	Username string `json:"-"`
	Password string `json:"-"`
	BriefIntro string `json:"brief_intro"`

	CreatedAt time.Time `json:"-" xrom:"created"`
	UpdatedAt time.Time `json:"-" xorm:"updated"`
}

type Message struct {
	Id           string    `json:"id"`
	Content      string    `json:"content"`
	LikeCount    int       `json:"like_count"`
	CommentCount int       `json:"comment_count"`
	UserId       string    `json:"user_id"`
	CreatedAt    time.Time `json:"created_at" xorm:"created"`
	UpdatedAt    time.Time `json:"updated_at" xorm:"updated"`

	User User `json:"user" xorm:"<- extends"`
}

func (u Message) TableName() string { return "messages" }

func (m *Message) Get() error {
	_, err := config.Global.DB.Join("left", "users", "users.id=messages.user_id").Get(m)
	return err
}

func (m Message) GetList(limit int, offset int) ([]Message, error) {
	list := make([]Message, 0)
	err := config.Global.DB.
		Join("left", "users", "users.id=messages.user_id").
		OrderBy("messages.created_at desc").
		Limit(limit, offset).
		Find(&list)
	return list, err
}

func (m *Message) Add() error {
	_, err := config.Global.DB.
		InsertOne(m)
	return err
}

> https://gobook.io/read/gitea.com/xorm/manual-en-US/chapter-02/4.columns.html <- only read from database 按照文档这里的说明,应该是查询可见,插入不可见。 目前插入是不可见了,但是查询也同样不见了,甚至于查询单条时会报错。 模型及代码如下: 目前情况是 Get 和 GetList 不能得到想要的数据,但是 Add 可以执行。 如果 User User `json:"user" xorm:"<- extends"`改成 User User `json:"user" xorm:"extends"`, 那么Get 和 GetList 能得到想要的数据,但是 Add 不可以执行。 ``` User.go type User struct { Id string `json:"id"` Nickname string `json:"nickname"` Avatar string `json:"avatar"` Username string `json:"-"` Password string `json:"-"` BriefIntro string `json:"brief_intro"` CreatedAt time.Time `json:"-" xrom:"created"` UpdatedAt time.Time `json:"-" xorm:"updated"` } ``` ``` Message.go type Message struct { Id string `json:"id"` Content string `json:"content"` LikeCount int `json:"like_count"` CommentCount int `json:"comment_count"` UserId string `json:"user_id"` CreatedAt time.Time `json:"created_at" xorm:"created"` UpdatedAt time.Time `json:"updated_at" xorm:"updated"` User User `json:"user" xorm:"<- extends"` } ``` ``` func (u Message) TableName() string { return "messages" } func (m *Message) Get() error { _, err := config.Global.DB.Join("left", "users", "users.id=messages.user_id").Get(m) return err } func (m Message) GetList(limit int, offset int) ([]Message, error) { list := make([]Message, 0) err := config.Global.DB. Join("left", "users", "users.id=messages.user_id"). OrderBy("messages.created_at desc"). Limit(limit, offset). Find(&list) return list, err } func (m *Message) Add() error { _, err := config.Global.DB. InsertOne(m) return err } ```
Owner

This should be a bug.

This should be a bug.
lunny added the
kind
bug
label 2021-06-12 08:36:29 +00:00
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: xorm/xorm#1755
No description provided.