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.")

これらのメソッドを組み合わせることで、複雑な列操作を簡潔に記述できます。