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 の場合、結果は得られません。時分と秒の部分は圧縮では考慮されません。
つまり、月の日付と年の圧縮は正常に機能していますが、分秒と時間は機能していません。
代替ソリューションが受け入れられる場合でも、任意の提案をいただければ幸いです。