我正在使用JPA hibernate和postgres。在尝试在getResultList()上运行javax.persistence.Query时会出现问题。这个查询很小,大约有10行,但是两个表中的joins和大约80列都会将其查询到大约200行JBOSS日志。就像下面这样。
15:47:05,908 INFO [stdout] (Thread-11 (HornetQ-client-global-threads-507424984)) Hibernate:
15:47:05,910 INFO [stdout] (Thread-11 (HornetQ-client-global-threads-507424984)) select
15:47:05,911 INFO [stdout] (Thread-11 (HornetQ-client-global-threads-507424984)) tablename0_.some_field_name as auto_genrated_field_name,
....
15:47:06,255 WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Thread-11 (HornetQ-client-global-threads-507424984)) SQL Error: 0, SQLState: 42883
15:47:06,256 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Thread-11 (HornetQ-client-global-threads-507424984)) ERROR: operator does not exist: character varying ~~ integer
Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Position: 7236正如所见,日志没有确切地告诉我类型转换有问题的字段名,而只告诉我它认为错误的字符位置。根据缩进和hibernate格式化我的查询的方式,我无法确定它指的是哪个变量。实际上,我试着把这个准确的查询日志放到编辑器上,然后带我到那个字符位置,但是我不确定我是否在看对的地方。在创建查询时,我还查看了Eclipse调试器和参数类型匹配。
在JBOSS中是否有任何开关,或者配置是否能准确地告诉我哪个字段出错了。
发布于 2014-07-30 21:30:02
您可以尝试使用这里提供的解决方案:How to view the SQL queries issued by JPA?
你查过PostgreSQL日志了吗?默认情况下,会记录导致错误的语句。
https://stackoverflow.com/questions/25046041
复制相似问题