Columns
Columns は orm.Columns
型の bob expression です。
基本的な使い方
orm.NewColumns()
を使用して新しい列リストを作成できます:
orm.NewColumns("id", "name", "email").WithParent("public.users")
View と Table モデルは Columns()
メソッドを実装しており、そのテーブルの列を取得できます。
メソッド
Only
指定した列のみを選択します:
userView.Columns().Only("email")
このメソッドは、指定した列のみを含む新しい Columns オブジェクトを返します。
Except
指定した列を除外します:
userView.Columns().Except("email")
このメソッドは、指定した列を除いた新しい Columns オブジェクトを返します。
WithParent
親テーブルを指定します:
userView.Columns().WithParent("backup", "users_old")
このメソッドは、列に親テーブルの情報を追加します。複数の引数を渡すことで、スキーマとテーブル名を指定できます。
WithPrefix
列名にプレフィックスを追加します:
userView.Columns().WithPrefix("users.")
このメソッドは、各列名の前に指定したプレフィックスを追加します。JOIN クエリなどで列名の衝突を避けるために使用されます。
使用例
// 特定の列のみを選択
selectedColumns := userView.Columns().Only("id", "name", "email")
// 特定の列を除外
filteredColumns := userView.Columns().Except("password", "secret_key")
// 親テーブルを指定
qualifiedColumns := userView.Columns().WithParent("public", "users")
// プレフィックスを追加
prefixedColumns := userView.Columns().WithPrefix("u.")
// メソッドチェーン
finalColumns := userView.Columns().
Except("password").
WithParent("public", "users").
WithPrefix("u.")
これらのメソッドを組み合わせることで、複雑な列操作を簡潔に記述できます。