我有个问题。我的程序中的一些 sql 可以由用户编写。所以我不知道这个sql中有哪些表或哪些列。因此,我想检测 sql 中有哪些列名。但是,如果日期在 sql 中,我会得到 JDBC 类型的 No Dialect 映射:-102 错误。我怎么能处理呢?我在 java 中使用休眠 3.6 或 4.1.3。我的数据库是一个oracle数据库。方言是 org.hibernate.dialect.Oracle10gDialect。
我真的不知道sql中有什么。
这是我的代码:
SQLQuery q=session.createSQLQuery("SELECT * FROM tbl WHERE id = 2");
q.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
List<Map<String,Object>> aliasToValueMapList=q.list();
for(Map<String,Object> map : aliasToValueMapList){
System.out.println(map.keySet());
break;
}
我希望有人知道这个问题的解决方案。
格雷茨