java.util.Date让我们用Ignite SQL 查询可接受的类的单个字段来定义“pojo” :
public class TimeHolder {
@QuerySqlField
public Date date;
public TimeHolder(Date date) {
this.date = date;
}
}
现在创建 ignite 缓存并通过 SQL 查询它:
final IgniteCache<Integer, TimeHolder> timeCache = ignite.getOrCreateCache(...);
timeCache.put(1, new TimeHolder(new Date()));
final FieldsQueryCursor<List<?>> queryCursor = timeCache.query(new SqlFieldsQuery("select * from TimeHolder"));
final List<?> timeHolderFields = queryCursor.iterator().next();
final Object dateField = entityFields.iterator().next();
assert theOnlyField.getClass() == java.sql.Timestamp.class;
事实证明,这Object dateField并不java.util.Date像声明的那样,而是java.sql.Timestamp.
我猜想java.sql.Timestamp在 H2 内部的某个地方保存日期有助于处理 SQL 子句。但是为什么它被扔到外面而不是声明和预期类的对象呢?
一个更重要的问题是:我在哪里可以找到所有这些转换的可靠列表?
更新。问题在评论中回答
江户川乱折腾
湖上湖
相关分类