以前我的项目(Spring和Hibernate集成)与mysql连接现在我正在尝试连接SQL Server 2005,在整个项目中我正在使用HQL查询,当我尝试从表中获取数据时它给出错误作为休闲
Hibernate: select role0_.id as id1_, role0_.description as descript2_1_, role0_.name as name1_ from easylibSQL.role role0_
WARN [localhost-startStop-1] SqlExceptionHelper.logExceptions(143) | SQL Error: 208, SQLState: 42S02
ERROR [localhost-startStop-1] SqlExceptionHelper.logExceptions(144) | Invalid object name 'easylibSQL.role'.
org.hibernate.exception.SQLGrammarException: Invalid object name 'easylibSQL.role'.
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:122)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129)
at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
at com.sun.proxy.$Proxy115.executeQuery(Unknown Source)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1926)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1727)
at org.hibernate.loader.Loader.doQuery(Loader.java:852)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:293)
at org.hibernate.loader.Loader.doList(Loader.java:2411)
at org.hibernate.loader.Loader.doList(Loader.java:2397)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2227)
at org.hibernate.loader.Loader.list(Loader.java:2222)
但是如果我使用Native SQL查询然后执行正常,我该如何解决这个问题。我在网上搜索但没有得到有效的解决方案。
我引用了这个link,但错误是一样的,在我的例子中,所有表都有一个带有自动递增值的id主键。我在POJO类
中注释了ID @Id
@GeneratedValue
@DocumentId
@Column(name="id")
public Long getId() {
return id;
}
我试过这个但没有用
@GeneratedValue(strategy = GenerationType.AUTO)
任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
最后我发现解决方案我将所有具有Bigint的数据类型替换为int,因此它工作正常