我正在使用BeanListHandler
将数据库中的行转换为 POJO。它一直运行良好,但现在我需要进行一些日期比较。为此,我决定使用 JodaTime。
我希望查询结果集中的所有 Timestamp/Date 类型行都转换为 JodaTime 的DateTime
类,而不是默认的Timestamp
. 我尝试使用 setter 来执行此操作,但BeanListHandler
似乎没有调用 setter 来设置值(它是否使用反射?)。
我该怎么做呢?
我正在使用BeanListHandler
将数据库中的行转换为 POJO。它一直运行良好,但现在我需要进行一些日期比较。为此,我决定使用 JodaTime。
我希望查询结果集中的所有 Timestamp/Date 类型行都转换为 JodaTime 的DateTime
类,而不是默认的Timestamp
. 我尝试使用 setter 来执行此操作,但BeanListHandler
似乎没有调用 setter 来设置值(它是否使用反射?)。
我该怎么做呢?
我认为没有直接的解决方案。一种解决方法是在 POJO中同时包含Timestamp
和字段,并在属性的 setter 方法中设置值,如下例所示。DateTime
DateTime
Timestamp
public class Pojo{
private Timestamp timestamp;
private DateTime dateTime;
public Timestamp getTimestamp() {
if (timestamp == null && dateTime != null) {
this.timestamp = new Timestamp(dateTime.getMillis());
}
return timestamp;
}
public void setTimestamp(Timestamp timestamp) {
if (dateTime == null && timestamp != null) {
this.dateTime = new DateTime(timestamp.getTime());
}
this.timestamp = timestamp;
}
public DateTime getDateTime() {
if (dateTime == null && timestamp != null) {
this.dateTime = new DateTime(timestamp.getTime());
}
return dateTime;
}
public void setDateTime(DateTime dateTime) {
if (timestamp == null && dateTime != null) {
this.timestamp = new Timestamp(dateTime.getMillis());
}
this.dateTime = dateTime;
}
}