【发布时间】:2014-01-30 16:44:37
【问题描述】:
我正在尝试创建自己的 Hibernate 映射以使用 Hibernate 读取和写入 UTC 时间戳到 DB,因此我正在扩展 Hibernate TimestampType 类,如下所示,但我总是收到以下错误。那么有人可以告诉我我在这里做错了什么吗?感谢您的宝贵时间。
此行有多个标记 - UTCTimestampType 类型的方法 set(PreparedStatement, Object, int) 必须覆盖或实现超类型方法 - 名称冲突:UTCTimestampType 类型的方法 set(PreparedStatement, Object, int) 与 set(PreparedStatement, T, int) 类型为 AbstractSingleColumnStandardBasicType 但不是 覆盖它
public class UTCTimestampType extends org.hibernate.type.TimestampType{
@Override
public Object get(ResultSet rs, String name) throws SQLException {
return rs.getTimestamp(name, createUTCCalendar());
}
private static Calendar createUTCCalendar() {
final Calendar c = Calendar.getInstance();
c.setTimeZone(new SimpleTimeZone(0, "UTC"));
return c;
}
@Override
public void set(PreparedStatement st, Object value, int index)
throws SQLException{
Timestamp ts;
if (value instanceof Timestamp) {
ts = (Timestamp) value;
} else {
ts = new Timestamp(((java.util.Date)value).getTime());
}
st.setTimestamp(index, ts, createUTCCalendar());
}
}
【问题讨论】:
-
您是否在某个课程中扩展了
UTCTimestampType? -
@JigarJoshi 不,因为我什至无法首先编译 UTCTimestampType
-
你能在你的questino上发布hibernate版本和jdk版本吗
-
@JigarJoshi 我在我的应用程序和 JDK 7 中使用 hibernate-core-3.6.0.Final.jar