使用hibernate过程中,遇到的一些sql报错

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u010882234/article/details/80548353

       现在进入了一家新公司,已经快2个月了。公司是做电子政务的,产品已经很成熟了。现在每天的工作就是针对各个项目的产品,完成JIRA上分配来的各种任务,有开发任务、bug修复、需求改进等。现在已经很熟悉项目的业务和架构了,但还是遇到各种各样的问题,现在尽量把遇到的问题及解决方式记录下,在点滴积累中成长。

       1、could not extract ResultSet,这个错误很常见,一般都是sql错误。可能为:

        (1)字段拼写错误,数据库表中找不到这个字段;

        (2)空格问题,拼接sql的时候,忽略了某些空格,例如where和from前面要有空格。

        (3)实体类字段类型与数据库字段类型对应不上。例如数据库为日期类型,实体类使用了String。

        (4)未注意数据库方言,例如mysql和oracle的日期转换函数就不一样,忽略就会出错。

        (5)还有些空指针异常,可能是非null字段,传递了null值。

       2、找不到表,原因可能为:

       (1)忘记在数据库表对应的实体类上加@Entity和@Table注解;

       (2)@Table上标注的名字,与数据库表名字不一致,会找不到表。

       3、SQL Error: 904, SQLState: 42000 ORA-00904: "BASECONTEN0_"."RETURN_STATUS": 标识符无效

org.hibernate.exception.SQLGrammarException: could not extract ResultSet
       原因:后台实体类已经添加了字段,加了column注解,数据库表还未增加该字段。实体类里,不存入数据库的字段,需添加@Transient注解,表示忽略这些字段属性,不持久化到数据库。

       未完待续,会持续更新。

猜你喜欢

转载自blog.csdn.net/u010882234/article/details/80548353