[Seasar-user:17548] [S2JDBC]時制を指定したプロパティを検索条件とした場合の動作について

UmedaYoshikazu [E-MAIL ADDRESS DELETED]
2009年 5月 29日 (金) 02:31:43 JST


はじめまして、梅田と申します。

 DBのアクセスに、S2JDBCを使用させて頂いています。

 現在、seasar2.4.30を使用しており、2.4.37にアップしようとしましたが、
DB検索処理において、時制を指定したプロパティを検索条件に
含めた場合に、想定どおり動作しなくなってしまったため、質問
させて頂きました。

 検索対象のエンティティには、時制「@Temporal(TemporalType.TIME)」
を指定したプロパティ「time」があり、このプロパティを検索条件として
検索を行うと、すべて「00:00:00」で検索されてしまいます。下記例では、
「time」プロパティが「10:00:00」のデータを検索したいのですが、
「00:00:00」として検索されてしまいます。
seasar2.4.30まではうまく動作していました。

 検索実行で行っているBeanMapへの変換
「Beans.createAndCopy(BeanMap.class,condition).execute()」の時点で、
BeanMap内の「time」が「1970/01/01」になってしまっていることまでは
確認できました。
何か、こちらのロジックの組み方などに問題があるのでしょうか?
対処方法をご教授ください。
よろしくお願いします。


【エンティティ定義】

@Entity(name="xxx.entity")
@Table(schema="xxx",name="entity")
public class Entity implements Serializable{

      ・
      ・
      ・

@Id
@Temporal(TemporalType.TIME)
private Date time; //時刻

      ・
      ・
      ・
}


【検索処理(うまく動作しなくなってしまった部分。)】

 //検索条件に10:00:00を指定
 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
 Date time = sdf.parse("10:00:00");
 Entity condition = new Entity();
 condition.setTime(time);

 //検索実行
 List<Entity> data =
      aaaService.findByCondition(Beans.createAndCopy(BeanMap.class,condition).execute());


【ログ(一部マスクしています)】

DEBUG 2009-05-27 09:46:50,454 
[main]org.seasar.framework.aop.interceptors.TraceInterceptor - BEGIN 
xxx.aaaService#findByCondition({time=1970/01/01, xxx1=null, xxx2=null, 
xxx3=null, xxx4=null, xxx5=null})
DEBUG 2009-05-27 09:46:50,454 
[main]org.seasar.extension.jdbc.query.AutoSelectImpl - select T1_.xxx1 as 
C1_,T1_.TIME as C2_, T1_.xxx2 as C3_, T1_.xxx3 as C4_, T1_.xxx4 as C5_, 
T1_.xxx5 as C6_ from xxx.entity T1_ where (T1_.TIME = '00:00:00')
DEBUG 2009-05-27 09:46:50,454 
[main]org.seasar.framework.aop.interceptors.TraceInterceptor - END 
xxx.aaaService#findByCondition({time=1970/01/01, xxx1=null, xxx2=null, 
xxx3=null, xxx4=null, xxx5=null}) : [2007-03-01,00:00:00,1,6,1932,0.53]


環境:seasar 2.4.37
   JDK6u13
DB:PostgreSQL 8.3.5



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