Spring Boot项目运行报错:org.hibernate.exception.SQLGrammarException: error performing isolated ;workSQL [n/a]..
问题:
今天在进行spring boot项目测试时候,运行报错如下图:

org.springframework.dao.InvalidDataAccessResourceUsageException: error performing isolated work; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: error performing isolated work
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:281)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:255)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:528)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor
C
r
u
d
M
e
t
h
o
d
M
e
t
a
d
a
t
a
P
o
p
u
l
a
t
i
n
g
M
e
t
h
o
d
I
n
t
e
r
c
e
p
t
o
r
.
i
n
v
o
k
e
(
C
r
u
d
M
e
t
h
o
d
M
e
t
a
d
a
t
a
P
o
s
t
P
r
o
c
e
s
s
o
r
.
j
a
v
a
:
178
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
a
o
p
.
f
r
a
m
e
w
o
r
k
.
R
e
f
l
e
c
t
i
v
e
M
e
t
h
o
d
I
n
v
o
c
a
t
i
o
n
.
p
r
o
c
e
e
d
(
R
e
f
l
e
c
t
i
v
e
M
e
t
h
o
d
I
n
v
o
c
a
t
i
o
n
.
j
a
v
a
:
186
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
a
o
p
.
i
n
t
e
r
c
e
p
t
o
r
.
E
x
p
o
s
e
I
n
v
o
c
a
t
i
o
n
I
n
t
e
r
c
e
p
t
o
r
.
i
n
v
o
k
e
(
E
x
p
o
s
e
I
n
v
o
c
a
t
i
o
n
I
n
t
e
r
c
e
p
t
o
r
.
j
a
v
a
:
93
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
a
o
p
.
f
r
a
m
e
w
o
r
k
.
R
e
f
l
e
c
t
i
v
e
M
e
t
h
o
d
I
n
v
o
c
a
t
i
o
n
.
p
r
o
c
e
e
d
(
R
e
f
l
e
c
t
i
v
e
M
e
t
h
o
d
I
n
v
o
c
a
t
i
o
n
.
j
a
v
a
:
186
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
a
o
p
.
f
r
a
m
e
w
o
r
k
.
J
d
k
D
y
n
a
m
i
c
A
o
p
P
r
o
x
y
.
i
n
v
o
k
e
(
J
d
k
D
y
n
a
m
i
c
A
o
p
P
r
o
x
y
.
j
a
v
a
:
212
)
a
t
c
o
m
.
s
u
n
.
p
r
o
x
y
.
CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:178) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) at com.sun.proxy.
CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:178)atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)atorg.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)atorg.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)atcom.sun.proxy.Proxy105.save(Unknown Source)
原因以及解决办法
在网上查了下相关问题,才得知是ID自增序列的原因
正确做法应该是对ID加上注解:
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
如下图所示:
在测试Spring Boot项目时遇到错误:org.springframework.dao.InvalidDataAccessResourceUsageException,具体原因是Hibernate操作隔离工作时出现SQL语法错误。解决办法是通过在ID字段上添加特定注解来调整ID自增策略。

3万+

被折叠的 条评论
为什么被折叠?



