我试图将以下resultSet转换为Hibernate。使用resultSet为我提供了3个值(列+数据)。
JDBC
Session session = sessionFactory.openSession();
Query q = session.createSQLQuery(sql).addScalar("name").addScalar("address").addScalar("date");
int index=0;
for(String p: binding){
log.info("\tindex="+index+", p="+p);
q.setString((index++), p);
}
q.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
List<Map<String,Object>> resultsToValueMapList=q.list();
Hibernate
String Errororg.hibernate.MappingException: No Dialect mapping for JDBC type: -101
错误(添加第3个缩放器(“日期”)时):
{{1}}
如果我只使用前2个Scalers,我可以看到结果。我已经尝试修改List参数,但它没有用。如何使用结果转换器显示所有三列+数据。这是正确的方法吗?我过去使用AliasToEntityMapResultTransformer来获得2个值,但现在我需要得到3个。
答案 0 :(得分:0)
也许您需要指定类型:
Query q = session.createSQLQuery(sql)
.addScalar("name", Hibernate.STRING)
.addScalar("address", Hibernate.STRING)
.addScalar("date", Hibernate.DATE);