如是我闻

关于 SpringBoot JPA + Oracle 同义词 自己作的bug

今天使用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

标识符无效?

  1.   难道字段的大小写有问题和数据库的不一致?经排查,字段一致,运行还是一样的错。
    
  2.  难道就这个字段有问题? 加@Transient注解,忽略这个字段,运行还是一样的错,不过字段换了个新的。
    
  3.  e....注释掉所有的字段,只留下主键,运行还是一样的错,不过字段换了主键
    
  4.  lou 出sql 执行,可以正常执行。<font color=red>(此处有坑)</font>
    

思考 1,2,3 ........

问题原因:同义词的表创建出错了,

  1. 涉及的表的同义词创建较早,只记得同义词 创建了。
  2. lou 出的Sql 执行时用的原库,所以可以正常执行。
-- 子表和母表 如果子表要同义母表,本来是A对应A B对应B,但是同义时,把B表同义成A表了,而后续的逻辑是按照A表的逻辑写的,所以会出现以上错误


同义词参考连接

编辑器不好用,我用typora 编辑完复制过来的,格式如果有问题还请各位见谅

posted @ 2019-12-23 15:08  沉焱  阅读(396)  评论(0编辑  收藏  举报