使用SpringDataJpa保存(save)报错误:SQL Error: 1062, SQLState: 23000 控制台会报:Duplicate entry ‘数‘ for key ‘PRIMA
最新推荐文章于 2023-06-26 09:22:43 发布
最新推荐文章于 2023-06-26 09:22:43 发布
阅读量
1.2k
由于save方法的入参是一个实体对象,如果传入的实体对象的某些属性值为空(null),则最后
JPA
在更新时会把对应的字段也尝试更新为空(null),而实际上你可能只想更新所更改过的字段,对于空值字段你希望自动忽略不更新。save方法在更新DB时一个最大的特点是:默认每次都会先去查一遍DB,对查出来的DB
数
据与要
保存
的
数
据进行比较,看是否有变化,若有变化,才会将
数
据持久化至DB(执行
数
据的update),否则,就不会进行
数
据的持久化。1、在执行更新操作后,调用flush()方法。
完整的
错误
日志:
WARN o.h.e.j.s.
Sql
ExceptionHelper:145:
SQL
Error
:
1062
,
SQL
State
:
23000
2022-03-01_15:28:49 [http-nio-8080-exec-1]
ERROR
o.h.e.j.s.
Sql
ExceptionHelper:147:
Dupli
cat
e
entry
'75302-16969' for
key
'customer_menu_id'
2022-03-01_15:28:49 [http-nio
举例:实体对象 order,通过 refundOrderId关联于 RefundOrderItem表,在新建实体 order中 ,同时需要新建 refundOrderItems,这样如果只是
保存
order实体,refundOrderItems也会
保存
信息,但是在RefundOrderItem表上并没有
数
据。ps:在实体中的级联级别为 All@OneToMany(cascade...
· 这个问题是因为本表是因为对于一个关联的外键表存在一个唯一约束,然而你又对于这个唯一约束新增了一个同样的字段。所以需要你去查看 新增这个关系表对应的外键是否存在,或者
JPA
一对多的关系是否选择的是同时合并、和同时持久化操作。如果是同时持久化操作就会在更新外键表的时候自己修改主表(根据主表的ID来修改,如果没有的id 就会帮你新增一个主表
数
据)。
级联所有实体状态转换
PERSIST
Mysql
连接
报错
:
java
.
sql
.
SQL
Exception:null,message from server:"Host '27,45,38,132' is not allowed to connect.原因是:远程服务器不允许你的
java
程序访问它的
数据库
。所以,我们要对远程服务器进行设置,使它允许你进行连接。工具
sql
developer连接远程的
MySQL
数据库
时,配置连接信息,连接发生...
在
使用
JPA
框架进行
数
据存储时,调用CrudRepository的save()方法
报错
:
org.
spring
framework.orm.
jpa
.
Jpa
SystemException: ids for this class must be manually assigned before calling save(): model对象路径;
我正在尝试教自己一些
Java
和
JPA
,现在这是几天以来什么也没发生的地方。我有两个通过OneToMany关系链接的实体(ITEM和ITEMLIST)。我将ITEM分别
保存
到
数据库
中。目标是获得一个带有ITEMLIST主键和ITEMS外键的表。但是,当我
保存
第二个ITEMLIST时,会出现“重复...”
错误
。WARN:
SQL
Error
:
1062
,
SQL
State
:
23000
ERROR
: D...
Caused by: org.hibernate.exception.
SQL
GrammarException: could not execute
state
ment
at org.hibernate.exception.internal.
SQL
ExceptionTypeDelegate.convert(
SQL
ExceptionTypeDelegate.
java
:80) ~[hibernate-core-4.3.7.Final.jar:4.3.7.Final]
Caused b...
在
spring
boot 的dao实例继承
Jpa
Repository 进行入库save操作时,出现了“
sql
error
1064
sql
state
42000”,直接是语法
错误
;理由就是我插入的
数
据里面包含了中文,越南语,泰语这些多国语言,在入库时插入别识别为乱码了,导致插入失败!
蹦到这个问题时各种翻查:
spring
boot的
数据库
连接配置,
mysql
本身的字符集,库的字符集,表的字符集,字段的字符集,通通查完了,都是utf-8;甚至都
使用
上string.getbytes("utf-8")了,依然无