[Seasar-user:4027] S2Daoで任意のテーブルに切替えたい

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2006年 7月 6日 (木) 15:51:08 JST


関です

題名の通り、S2Daoを使ってテーブルを切替える方法は有りますか?

S2Daoを使用してみようと思ったシステムは、
テーブル定義は同じですが、新しいテーブルが毎日作成されます。

例:
XXX20060701
XXX20060702
XXX20060703
XXX20060704

この状況でDAOのBEANにテーブル名を記述するには、毎日新しいクラスを作成する事になるのでは?
と言うことで質問させて頂きました。

試したことは以下の通りです。

1.文字列で渡す
	☆DAOの定義
	public	List	selectAll(String tableName);
	public static final String selectAll_SQL = "SELECT * FROM /*tableName*/XXX20060101";

	☆実行部分
	List xxx = dao.selectAll("XXX20060702");

	☆結果
	SQLが
	SELECT * FROM 'XXX20060701'
	となり(テーブル名にシングルクォートが入って)エラー

2.文字列で渡す(実行部分の引数を変えてみた)
	☆DAOの定義
	public	List	selectAll(String tableName);
	public static final String selectAll_SQL = "SELECT * FROM /*tableName*/XXX20060101";

	☆実行部分
	List xxx = dao.selectAll("\"XXX20060702\"");

	☆結果
	SQLが
	SELECT * FROM '"XXX20060702"'
	となりエラー

	Caused by: java.sql.SQLException: ORA-00903: 表名が無効です。

3.数字で渡す

	☆DAOの定義
	public	List	selectAll(int tableValue);
	public static final String selectAll_SQL = "SELECT * FROM XXX/*tableValue*/20060101";

	☆実行部分
	List xxx = dao.selectAll(20060702);

	☆結果
	以下の様なエラー出力とともにエラー

	org.seasar.framework.exception.SQLRuntimeException: [ESSR0071]SQLで例外(ErrorCode=933, SQLState=42000)が発生しました。理由はorg.seasar.framework.exception.SSQLException: [ESSR0072]SQLで例外(SQL=[SELECT * FROM XXX?], ErrorCode=933, SQLState=42000)が発生しました
		... 中略
	Caused by: org.seasar.framework.exception.SSQLException: [ESSR0072]SQLで例外(SQL=[SELECT * FROM XXX?], ErrorCode=933, SQLState=42000)が発生しました
		... 中略
	Caused by: java.sql.SQLException: ORA-00933: SQLコマンドが正しく終了されていません。

4.意味はないけどSQLコメントの中身を消してみた

	☆DAOの定義
	public	List	selectAll(int tableValue);
	public static final String selectAll_SQL = "SELECT * FROM XXX/**/20060701";

	☆実行部分
	List xxx = dao.selectAll(20060702);

	☆結果
	正常 = XXX20060701 のデータの取得可能
 (引数とかは無視されるのかな??)

S2Daoでテーブルの切替
http://www.seasar.org/wiki/index.php?AnsweringYourQuestions#n4635c3d
と言うのも発見したのですが、既知の既存テーブルを切替える方法でした。

未来に作成されるテーブルに切替える方法がありましたらお聞かせ下さい。


よろしくお願い致します。





Seasar-user メーリングリストの案内