View

View モデルは、データベースエンティティを Go の構造体にマッピングするためのものです。

基本的な使い方

View モデルを作成するには、NewView() 関数を使用します:

type User struct {
    ID    int
    Name  string
    Email string
}

var userView = psql.NewView[User]("public", "users")

メソッド

View モデルには以下のメソッドが利用できます:

Name()

テーブルの名前を返します。

NameAs()

テーブルの名前をエイリアス付きで返します。

Columns()

テーブルのカラム情報を返します。

Query()

クエリを構築するためのメソッドです。以下のようなクエリメソッドが利用できます:

  • Query() - 基本的なクエリの構築
  • One() - 単一の結果を取得
  • All() - 複数の結果を取得
  • Cursor() - カーソルを使用した効率的な処理
  • Count() - レコード数を取得
  • Exists() - レコードの存在確認

使用例

// 単一のユーザーを取得
user, err := userView.Query().
    Where(psql.Quote("id").EQ(psql.Arg(1))).
    One(ctx, db)

// 複数のユーザーを取得
users, err := userView.Query().
    Where(psql.Quote("active").EQ(psql.Arg(true))).
    All(ctx, db)

// ユーザー数を取得
count, err := userView.Query().
    Where(psql.Quote("active").EQ(psql.Arg(true))).
    Count(ctx, db)

// ユーザーの存在確認
exists, err := userView.Query().
    Where(psql.Quote("email").EQ(psql.Arg("user@example.com"))).
    Exists(ctx, db)

Tips

  • 複数のスキーマを扱う場合は、NewViewx() を使用してスキーマを指定できます
  • View モデルは読み取り専用で、挿入、更新、削除の操作はサポートしていません
  • クエリメソッドは型安全で、コンパイル時にエラーをキャッチできます