47 lines
1.4 KiB
Go
47 lines
1.4 KiB
Go
package core
|
||
|
||
import (
|
||
"fmt"
|
||
)
|
||
|
||
// ExampleQueryBuilder_Omit 演示 Omit 方法的使用
|
||
func ExampleQueryBuilder_Omit() {
|
||
// 定义用户模型
|
||
type User struct {
|
||
ID int64 `json:"id" db:"id"`
|
||
Name string `json:"name" db:"name"`
|
||
Email string `json:"email" db:"email"`
|
||
Password string `json:"password" db:"password"`
|
||
Status int `json:"status" db:"status"`
|
||
}
|
||
|
||
// 创建 Database 实例(示例中使用 nil,实际使用需要正确初始化)
|
||
db := &Database{}
|
||
|
||
// 示例 1: 排除敏感字段(如密码)
|
||
q1 := db.Model(&User{}).Omit("password")
|
||
sql1, _ := q1.(*QueryBuilder).BuildSelect()
|
||
fmt.Printf("排除密码:%s\n", sql1)
|
||
|
||
// 示例 2: 排除多个字段
|
||
q2 := db.Model(&User{}).Omit("password", "status")
|
||
sql2, _ := q2.(*QueryBuilder).BuildSelect()
|
||
fmt.Printf("排除多个字段:%s\n", sql2)
|
||
|
||
// 示例 3: 链式调用 Omit
|
||
q3 := db.Model(&User{}).Omit("password").Omit("status")
|
||
sql3, _ := q3.(*QueryBuilder).BuildSelect()
|
||
fmt.Printf("链式调用:%s\n", sql3)
|
||
|
||
// 示例 4: Select 优先于 Omit
|
||
q4 := db.Model(&User{}).Select("id", "name").Omit("password")
|
||
sql4, _ := q4.(*QueryBuilder).BuildSelect()
|
||
fmt.Printf("Select 优先:%s\n", sql4)
|
||
|
||
// 输出:
|
||
// 排除密码:SELECT id, name, email, status FROM user_model
|
||
// 排除多个字段:SELECT id, name, email FROM user_model
|
||
// 链式调用:SELECT id, name, email FROM user_model
|
||
// Select 优先:SELECT id, name FROM user_model
|
||
}
|