如何将(JDBC)结果集转换为Hibernate?

时间:2015-06-17 00:51:10

标签: java hibernate jdbc

我试图将以下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个。

1 个答案:

答案 0 :(得分:0)

也许您需要指定类型:

Query q = session.createSQLQuery(sql)
    .addScalar("name", Hibernate.STRING)
    .addScalar("address", Hibernate.STRING)
    .addScalar("date", Hibernate.DATE);