Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[S2JDBC]Likeで使うワイルドカードを変更可能にしました [Seasar-user:21947] #9

Merged
merged 1 commit into from Oct 19, 2014

Conversation

Projects
None yet
3 participants
@koichik
Copy link
Member

commented Oct 4, 2014

http://ml.seasar.org/archives/seasar-user/2014-September/021950.html

以前のOracleでは、全角の"%"および"_"もワイルドカード文字であったため、エスケープの対象としていた。しかし最近のOracleでは全角の"%"および"_"はワイルドカード文字ではなくなり、エスケープするとSQLエラーとなる。

そのため、ワイルドカードを変更できるようLikeUtilにgetter/settterを追加した。

旧バージョンのS2JDBCにおいてこの問題を回避するために、LikeUtilの定数フィールドをリフレクションで変更しているユーザが実在するため、互換性を損なわないように修正した。
具体的には、明示的にワイルドカードを設定していない場合にgetterは既存の定数を参照するようにしている。
追加したフィールドの初期値に定数を設定し、getterは常にフィールドを参照する方が自然な実装ではあるが、その場合はリフレクションで定数を変更してもgetterはその値を参照しないので互換性を失ってしまう。そのためこの方式は採用しなかった。

[S2JDBC]Likeで使うワイルドカードを変更可能にしました [Seasar-user:21947]
http://ml.seasar.org/archives/seasar-user/2014-September/021950.html

以前のOracleでは、全角の"%"および"_"もワイルドカード文字であったため、
エスケープの対象としていた。
しかし最近のOracleでは全角の"%"および"_"はワイルドカード文字ではなくなり、
エスケープするとSQLエラーとなる。

そのため、ワイルドカードを変更できるようLikeUtilにgetter/settterを追加した。

旧バージョンのS2JDBCにおいてこの問題を回避するために、LikeUtilの定数フィールドを
リフレクションで変更しているユーザが実在するため、互換性を損なわないように修正した。
具体的には、明示的にワイルドカードを設定していない場合にgetterは既存の定数を
参照するようにしている。
追加したフィールドの初期値に定数を設定し、getterは常にフィールドを参照する方が
自然な実装ではあるが、その場合はリフレクションで定数を変更してもgetterはその値を
参照しないので互換性を失ってしまう。そのためこの方式は採用しなかった。
@koichik

This comment has been minimized.

Copy link
Member Author

commented Oct 4, 2014

レビューお願いします。

@manhole

This comment has been minimized.

Copy link
Contributor

commented Oct 14, 2014

👍

1 similar comment
@nakamura-to

This comment has been minimized.

Copy link
Contributor

commented Oct 14, 2014

👍

koichik added a commit that referenced this pull request Oct 19, 2014

Merge pull request #9 from seasarorg/s2jdbc-like-wildcard
[S2JDBC]Likeで使うワイルドカードを変更可能にしました [Seasar-user:21947]

@koichik koichik merged commit 6ae23c8 into master Oct 19, 2014

@koichik

This comment has been minimized.

Copy link
Member Author

commented Oct 19, 2014

@manhole @nakamura-to レビューありがとうございました、マージしました。

@koichik koichik referenced this pull request Nov 29, 2014

Closed

2.4.48リリース #12

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.