ソースコード上でのSQL

SQLを書くこと自体は苦じゃないのですが、プログラミング言語中では単なる文字列なのがちょっと。ツールを探してみてもSQLを苦手な開発者からSQLを隠ぺいさせる方向なモノが多く、SQLを書きまくりたいけど文字列じゃなくて、テーブルやカラムと言った単位で扱いたい、という要求に応えてくれるものがなかなかありません。仕方ないので自分でこさえてみましたが・・・

// 検索対象テーブル
Table ord = new Table ("Orders","ord");
Table odd = new Table ("Order Details","odd");
Table prd = new Table ("Products","prd");
Table cst = new Table ("Customers","cst");

// テーブル結合
Relation r1 = new Join (ord,odd,new Using ("OrderID"), JoinType.Inner);
Relation r2 = new Join (r1,prd,new Using ("ProductID"), JoinType.Inner);
Relation r3 = new Join (r2,cst,new Using ("CustomerID"), JoinType.Inner);

// クエリー作成
Query query = new Query ();
query.From (r3);
query.Where (new GreaterThan (prd.GetColumn ("UnitPrice"), new Literal (10000)));
query.Select (
    cst.GetColumns ("CustomerID","CustomerName"),
    ord.GetColumns ("OrderID","ShipCountry","ProductID"),
    prd.GetColumns ("ProductName"),
    odd.GetColumns ("UnitPrice","Quantity"));
query.OrderBy (cst.GetColumn ("CustomerID"));

// SQL文の取得
Console.WriteLine (query.Statement);

全然楽になりませんね。(^^;

Queryオブジェクトを別のQueryのFromに渡したりとか出来るのは便利なんですが、where条件を書くところが厳しいです。db4oのネイティブクエリが羨ましい・・・