今天使用IDEA生成JPA实体类,继承JpaRepository 调用其默认的查询方法时,报错了,错误信息如下:
192.168.3.8 2019-12-23 14:10:14 WARN [org.springframework.kafka.KafkaListenerEndpointContainer#0-0-C-1] org.hibernate.engine.jdbc.spi.SqlExceptionHelper SQL Error: 904, SQLState: 42000
192.168.3.8 2019-12-23 14:10:14 ERROR [org.springframework.kafka.KafkaListenerEndpointContainer#0-0-C-1] org.hibernate.engine.jdbc.spi.SqlExceptionHelper ORA-00904: "PRPCMAINEX0_"."YYCDFLAG": 标识符无效
org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
标识符无效?
难道字段的大小写有问题和数据库的不一致?经排查,字段一致,运行还是一样的错。
难道就这个字段有问题? 加@Transient注解,忽略这个字段,运行还是一样的错,不过字段换了个新的。
e....注释掉所有的字段,只留下主键,运行还是一样的错,不过字段换了主键
lou 出sql 执行,可以正常执行。<font color=red>(此处有坑)</font>
思考 1,2,3 ........
问题原因:同义词的表创建出错了,
- 涉及的表的同义词创建较早,只记得同义词 创建了。
- lou 出的Sql 执行时用的原库,所以可以正常执行。
-- 子表和母表 如果子表要同义母表,本来是A对应A B对应B,但是同义时,把B表同义成A表了,而后续的逻辑是按照A表的逻辑写的,所以会出现以上错误