我将SQLServer2008用作dbms,并希望在hibernate中查询一个option子句设置为(robustplan)的视图。
我尝试了以下解决方案:
try {
mylist = (List<MyObject>) session.createSQLQuery("SELECT * FROM MyTable "+WHERE+" OPTION(ROBUST PLAN)").list();
session.getTransaction().commit();
}
出现此错误时:
org.hibernate.mappingexception:没有jdbc类型的方言Map:-9
和
try {
mylist = (List<MyObject>) session.createQuery("from MyTable " + WHERE + " OPTION(ROBUST PLAN)").list();
session.getTransaction().commit();
}
出现此错误时:
2020-06-11 17:14:23错误parser:56 - 行1:66:意外标记:option java.lang.reflect.undeclaredthrowableexception at com.sun.proxy.$proxy20.createquery(未知源)
原因:java.lang.reflect.invocationtargetexception
原因:java.lang.nosuchmethoderror:org.hibernate.hql.antlr.hqlbaseparser.recover(lantlr/recognitionexception;lantlr/collections/impl/bitset;)v
我不知道该怎么做。
我的配置:hibernate.cfg.xml
<property name="connection.driver_class">
com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
1条答案
按热度按时间7d7tgy0s1#
您正在将mysqldialect与mssqlserverdriver相结合,这需要更正。接下来,我假设您使用的是mssqlserver,并确保查询运行时没有任何问题。