[DAO-143] Java の実装によっては @ProcedureCall で @ProcedureParameter の定義順に引数セットされない問題に対処しました。 Created: 2008-09-30 Updated: 2008-10-29 Resolved: 2008-10-29 |
|
| Status: | Resolved |
| Project: | S2Dao |
| Component/s: | s2dao |
| Affects Version/s: | None |
| Fix Version/s: | 1.0.49 |
| Type: | Bug | Priority: | Major |
| Reporter: | Mizuo SUHARA | Assignee: | taedium |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
IBM WebSphere 5.1 (SuSE linux) (java 1.4 IBM実装) |
||
| Description |
|
org.seasar.dao.impl.ProcedureMetaDataFactory 内の 参照
例えば、 XxxDto.java public static class XxxDto { public static String a_PROCEDURE_PARAMETER = "return"; public static String c_PROCEDURE_PARAMETER = "inout"; public static String b_PROCEDURE_PARAMETER = "in"; private double a; private double c; private double b; //... } のような定義を行った場合、 a c b の順で Field[配列] が返ってきて、期待通り動作します。 b c a のように定義とは逆順に値が返ってくるため、引数が正しくプロシージャにセットされず、実行エラーとなってしまいます。 順序不定で処理しても差し支えない処理なら 当問題における該当ソースは下記で参照できます。 ProcedureMetaDataFactoryImpl.java package org.seasar.dao.impl; public class ProcedureMetaDataFactoryImpl implements ProcedureMetaDataFactory { public ProcedureMetaData createProcedureMetaData( final String procedureName, final Method method) { final ProcedureMetaDataImpl metaData = new ProcedureMetaDataImpl( procedureName); final Class dtoClass = getParameterType(method); // ... // Class#getDeclaredFields() は順序保証しない final Field[] fields = dtoClass.getDeclaredFields(); // ... } } 1年ほど前にプロシージャ引数における順序指定の話題がありましたが、再度、対応についてご検討いただけないでしょうか? |
| Comments |
| Comment by taedium [ 2008-10-29 ] |
|
対応しました。 [seasar-s2dao-dev:637] |
| Comment by Mizuo SUHARA [ 2008-10-06 ] |
|
定義した順に引数セットが行われ、期待通りの動作することを確認できました。 次期リリース版に当修正を含めていただければ、ありがたいです。 |
| Comment by Mizuo SUHARA [ 2008-10-04 ] |
|
おぉぉーーー。早速の対応ありがとうございます。感謝、感謝です。 |
| Comment by taedium [ 2008-10-04 ] |
|
アノテーションで順序を指定できるようにするといった対応ではなく、クラスファイルに定義された並び順を使用するようにしました。 SNAPSHOTを作成しましたので確認していただけないでしょうか?このSNAPSHOTを使う際に、ソースコードを修正する必要はありません。よろしくお願いします。 http://maven.seasar.org/maven2-snapshot/org/seasar/dao/s2-dao/1.0.49-SNAPSHOT/s2-dao-1.0.49-20081003.220516-5.jar |
| Comment by Mizuo SUHARA [ 2008-10-01 ] |
|
ありがとうございます。対応の程宜しくお願いいたします。 |
| Comment by taedium [ 2008-10-01 ] |
|
アノテーションで順序を指定できるように対応します。 |