bigpigeon
Joined 8 years ago
Karma
32
Submissions
16
Member since
Mar 1
Joined 8 years ago
but I think text/template to generate code is not really good
it hard to read and error-prone
it is more like a powerful c-macro
I think use go/ast to implement c++ likes template is other way
find the name = "tom" user and it subquery blog title = "first blog" e.g
brick := toy.Model(&User{}).Where("=",Offsetof(User{}.Name),"tom").
Preload(Offsetof(User{}.Blog)).Where("=", Offsetof(Blog{}.Title), "first blog").Enter()
brick.Find(&user)
// raw sql
// select id,name,data, from user where name = "tom" limit 1
// select id,title,content,user_id from blog where user_id = @user.id and title = "first blog"
toyorm select field with Offsetof, it better when you want to refactor struct field name
and you can operation main query as sub queryI think add Join method and only support "One Data" preload is good way