0

java.util.Data と Oracle Timestamp を比較できません

アドレステーブルに格納されている日付は、29-JUL-13 07.15.57.529000000 PM のようなものです 私のアドレスクラスは以下のようなものです

@Entity
@org.hibernate.annotations.Entity(dynamicUpdate = true)
@Table(name = "address")
public class Address {

@Id
@GeneratedValue(generator = "assigned-by-code")
@GenericGenerator(name = "assigned-by-code", strategy = "assigned")
@Column(name = "id")
private String id;


@Type(type = "timestamp")
@Column(name = "lastaccesstimestamp")
private Date lastAccessTimestamp;

getter and setter

}


@Query("from Address a where a.associationId =:associationId and a.lastAccessTimestamp >=:lastAccessTimestamp")
List<Address> findLatestUpdatedAddresses(
        @Param("lastAccessTimestamp") Date lastAccessTimestamp,
        @Param("associationId") String associationId);

また、findlatestUpdateAddress メソッドの lastAccessTimestamp は Calendar.getInstance().getTime() です (例: Mon Jul 29 10:10:09 IST 2013)。

月、日、年の圧縮では適切な結果が得られますが、分、秒、または時間の変更があると適切な結果が得られません。

たとえば、lastAccessTimestamp が Mon Jul 29 10:10:09 IST 2013 で、DB の日付が 30-JUL-13 07.15.57.529000000 PM の場合、結果が返されます。

しかし、lasteAccessTimestamp が Mon Jul 30 07:09:09 IST 2013 の場合、結果は得られません。時分と秒の部分は圧縮では考慮されません。

つまり、月の日付と年の圧縮は正常に機能していますが、分秒と時間は機能していません。

代替ソリューションが受け入れられる場合でも、任意の提案をいただければ幸いです。

4

1 に答える 1