ORマッパー
というか、薄いDBラッパーのようなものを考えているんだけど、例えばシンプルなSELECTを実行するには
Entity e = new Entity(); e.put("column1", "abc"); e.put("column2", "123"); List<Entity> list = Table.select("TABLE1", e);
で
SELECT * FROM TABLE1 WHERE COLUMN1 = 'abc' AND COLUMN2 = '123'
のようなSQLになるんだけど、さてこれを
SELECT * FROM TABLE1 WHERE COLUMN1 >= 'abc' AND COLUMN2 = '123'
にしようと思ったら、javaではどう書くのがわかりやすいんだろうか?
HibernateのhqlやDBFluteのConditionBeanのような、独自&複雑な構文はなるべく排除したい。
基本的にEntityクラスはMap
演算子を >= にするくらいならともかく、COLUMN1 = 'a' OR COLUMN1 = 'b' みたいことを考えると、Entityクラスでは対応できない。
AND句OR句BETWEEN句とか考えるとやっぱりConditionBeanみたいなものを考えてしまうのだが・・・
複雑な構文を排除しようと思うと、select("TABLE1", "COLUMN1 = 'a' OR COLUMN1 = 'b'")みたいなのが一番わかりやすいとは思うんだけど、ここまできたらSQLそのまま書いても大差ないわけで・・・
シンプルさを重視しているので、検索条件を持つクラスと検索結果を持つクラスは同じものを使いたい。
何かいい手はないですかね?