entで条件抽出に直接クエリを記述する
ExprP()を使うことで実現可能だった。 これでDBに用意されている関数などを使用することもできる。
具体的例は以下のとおり。 この例ではitemテーブルのnameが5桁以上の文字列のものだけを抽出する。
items, err := r.ent().Item.Query(). Where(func(s *sql.Selector) { s.Where(sql.ExprP("CHAR_LENGTH(name) >= ?", 5)) }). All(ctx)