希望在这篇文章也能够找到你正在查找的问题,解决问题
Good Luck !
数据库并没有直接写SQL,是通过使用IDEA 同一个公司下的数据库软件生成的(DataGrip)
1.1 下面看一下Idea 的控制台信息:
The database returned no natively generated identity value;
nested exception is org.hibernate.HibernateException:
The database returned no natively generated identity value
1.2 接着再看下翻译软件的解释:
数据库没有返回本机生成的标识值;hibernate. hibernateexception:数据库没有返回本地生成的标识值
1.3 分析问题;看网上其他解决方案:ID没有设为主键、id不为空、id 自增
最近使用的这个数据库图形软件,没习惯,仔细检查一下发现 id 没有设为主键、id 没默认为非空、id没有设为自增策略;(苦笑,小心驶得万年船,为粗心买单一个小时)
1.4 解决问题;把该表的id 设为主键、id 默认为非空、id设为自增策略
2.1 先看控制台报错
org.springframework.dao.InvalidDataAccessResourceUsageException:
could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
Caused by: java.sql.SQLSyntaxErrorException:
Unknown column 'company0_.shareholder' in 'field list'
2.1 分析问题
可能是数据库字段和实体类映射不一致(看到company0_.shareholder);
简单翻译一下(YD),
3.1 解决问题;
看了一下实体类,一眼看出来问题了,起因是刚刚改动数据库字段,注解映射上未更新;
看一下前后变化吧,懂了吧
@Column(name = "shareholder")
@Convert(converter = ShareholderInfoConverter.class)
private List<ShareholderInfo> shareholderInfo;
@Column(name = "shareholder_info") //变化
@Convert(converter = ShareholderInfoConverter.class)
private List<ShareholderInfo> shareholderInfo;
2.4 问题解决;从出现问题到解决问题也就不到十分钟(带写文章)2023-10-08-22:35
“could not extract ResultSet” 是一个常见的数据库错误,通常是由于SQL语法错误或数据库连接问题引起的。具体的错误信息是 “SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet”,这表明在执行SQL查询时发生了问题。
可能的原因包括:
为了解决这个问题,你可以尝试以下步骤:
1.检查SQL语句:仔细检查查询语句,确保语法正确,并且引用的表和列存在。
2.检查数据库连接:确保数据库连接配置正确,并且数据库服务器正常运行。
3.检查数据库权限:确保当前用户具有执行查询所需的权限。
4.查看详细错误信息:根据具体的错误信息,查找更多关于该错误的信息,以便更好地定位问题。