项目架构:
角色:买家(手机)、卖家(PC)
重点:前后台系统发起的请求均先经过nginx服务器,如果访问的后端接口,再由其对请求进行转发。
跟着视频自学Spring cloud项目,现做下关键遇坑记录。
1.搭环境的坑
虚拟机及配套软件由教程提供,我们只要将.ova文件装上即可。就这也出问题了,因为他用的虚拟机管理软件是Virtual Box5.1。为了尽量减少开发工具不一致带来的问题,我也采用了这个虚拟机管理软件。但是,Oracle官网已经明确指出,这个软件不维护了,而且不提供下载。
1)无奈之下,下载了VirtualBox-6.0.10-132072-Win版本。建议:F12打开窗口找到下载连接,复制链接使用迅雷下载。oracle官网下载速度无力吐槽。
2)然后就正常安装完virtualbox,注意:这个破软件默认虚拟机给你放在c盘,我是不能忍的。修改默认位置:
不改,而是在运行.ova文件时修改虚拟机位置,会报错!!!
E:\FileDownLoadManager\CentosISO\centos7.3.ova失败. 返回 代码: E_INVALIDARG (0x80070057)
3)如果不介意安装c盘,无所谓了。如果已经默认安装c盘,又反悔,可以迁移。网上n多迁移教程,不再赘述!
但是有可能遇到错误:
主要是因为没有权限,修改文件权限即可!
4)自动独占键盘去掉
同时改一下主机键,鼠标就能出来了。
2.测试数据库连接
创建数据库
创建数据库表格
CREATE TABLE product_info (
product_id VARCHAR(32) NOT NULL,
product_name VARCHAR(64) NOT NULL COMMENT '商品名称',
product_price DECIMAL(8,2) NOT NULL COMMENT '商品单价',
product_stock INT NOT NULL COMMENT '库存',
product_description VARCHAR(64) COMMENT '描述',
product_icon VARCHAR(512) COMMENT '小图',
category_type INT NOT NULL COMMENT '类目编号',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY(product_id)
)COMMENT '商品表';
CREATE TABLE product_category(
category_id INT NOT NULL AUTO_INCREMENT,
category_name VARCHAR(64) NOT NULL COMMENT '类目名字',
category_type INT NOT NULL COMMENT '类目编号',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY(category_id),
UNIQUE KEY uqe_category_type (category_type)
)COMMENT '类目表';
CREATE TABLE order_master (
order_id VARCHAR(32) NOT NULL,
buyer_name VARCHAR(32) NOT NULL COMMENT '买家名字',
buyer_phone VARCHAR(32) NOT NULL COMMENT '买家电话',
buyer_address VARCHAR(128) NOT NULL COMMENT '买家地址',
buyer_openid VARCHAR(64) NOT NULL COMMENT '买家微信openid',
order_amount DECIMAL(8,2) NOT NULL COMMENT '订单总金额',
order_status TINYINT(3) NOT NULL DEFAULT '0' COMMENT '订单状态,默认0新订单',
pay_status TINYINT(3) NOT NULL DEFAULT '0' COMMENT '支付状态,默认0未支付',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY(order_id),
KEY idx_buyer_openid (buyer_openid)
)COMMENT '订单表';
CREATE TABLE order_detail(
detail_id VARCHAR(32) NOT NULL,
order_id VARCHAR(32) NOT NULL,
product_id VARCHAR(32) NOT NULL,
product_name VARCHAR(64) NOT NULL COMMENT '商品名称',
product_price DECIMAL(8,2) NOT NULL COMMENT '商品单价',
product_quantity INT NOT NULL COMMENT '商品数量',
product_icon VARCHAR(512) COMMENT '小图',
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY(detail_id),
KEY idx_order_id (order_id)
) COMMENT '订单详情表';
3.jdk及maven环境略有不同,后期出现问题再改
4.开发工具IDEA2017.3.1,出入不大
1)创建项目
先选web,后期需要啥再添加
测试下启动:
二、关于日志:
1.测试类,简单测试以下
对了,你还得开启注解。
2.日志文件的配置
application.yml 配置简单,完成功能简单
logback-spring.xml 配置复杂,功能也更完善
以下是logback-spring.xml
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--配置控制台输出-->
<appender name="consolelog" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>
%d - %msg%n
</pattern>
</layout>
</appender>
<!--info日志-->
<appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--过滤一下只要info级别的-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
<encoder>
<pattern>
%msg%n
</pattern>
</encoder>
<!--滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--Lujing-->
<fileNamePattern>/var/log/tomcat/sell/info.%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<!--error日志-->
<appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--过滤一下只要error级别的-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<encoder>
<pattern>
%msg%n
</pattern>
</encoder>
<!--滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--Lujing-->
<fileNamePattern>/var/log/tomcat/sell/error.%d.log</fileNamePattern>
</rollingPolicy>
</appender>
<!--配置作用在哪里-->
<root level="info">
<appender-ref ref="consolelog"/>
<appender-ref ref="fileInfoLog"/>
<appender-ref ref="fileErrorLog"/>
</root>
</configuration>
3.dao层测试
1)spring boot 2.0以后,findById 返回类型变为了Optional 类型。后边加.get()获得T 类型
2)
org.springframework.test.context.support.ActiveProfilesUtils - Could not find an ‘annotation declaring class’ for annotation type [org.springframework.test.context.ActiveProfiles] and class [com.scbg.dao.ProductCategoryRepositoryTest]
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=…) with your test
3)改了2)又出现个这
Failed to load ApplicationContext
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108)
at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190)
at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:330)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:78)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:328)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:65)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:292)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:305)
at org.junit.runners.ParentRunner.run(ParentRunner.java:412)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration’: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘dataSource’ defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration
H
i
k
a
r
i
.
c
l
a
s
s
]
:
B
e
a
n
i
n
s
t
a
n
t
i
a
t
i
o
n
v
i
a
f
a
c
t
o
r
y
m
e
t
h
o
d
f
a
i
l
e
d
;
n
e
s
t
e
d
e
x
c
e
p
t
i
o
n
i
s
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
B
e
a
n
I
n
s
t
a
n
t
i
a
t
i
o
n
E
x
c
e
p
t
i
o
n
:
F
a
i
l
e
d
t
o
i
n
s
t
a
n
t
i
a
t
e
[
c
o
m
.
z
a
x
x
e
r
.
h
i
k
a
r
i
.
H
i
k
a
r
i
D
a
t
a
S
o
u
r
c
e
]
:
F
a
c
t
o
r
y
m
e
t
h
o
d
′
d
a
t
a
S
o
u
r
c
e
′
t
h
r
e
w
e
x
c
e
p
t
i
o
n
;
n
e
s
t
e
d
e
x
c
e
p
t
i
o
n
i
s
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
o
o
t
.
a
u
t
o
c
o
n
f
i
g
u
r
e
.
j
d
b
c
.
D
a
t
a
S
o
u
r
c
e
P
r
o
p
e
r
t
i
e
s
Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties
Hikari.class]:Beaninstantiationviafactorymethodfailed;nestedexceptionisorg.springframework.beans.BeanInstantiationException:Failedtoinstantiate[com.zaxxer.hikari.HikariDataSource]:Factorymethod′dataSource′threwexception;nestedexceptionisorg.springframework.boot.autoconfigure.jdbc.DataSourcePropertiesDataSourceBeanCreationException: Failed to determine a suitable driver class
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:769)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:218)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1341)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1187)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean
0
(
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
320
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
D
e
f
a
u
l
t
S
i
n
g
l
e
t
o
n
B
e
a
n
R
e
g
i
s
t
r
y
.
g
e
t
S
i
n
g
l
e
t
o
n
(
D
e
f
a
u
l
t
S
i
n
g
l
e
t
o
n
B
e
a
n
R
e
g
i
s
t
r
y
.
j
a
v
a
:
222
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
d
o
G
e
t
B
e
a
n
(
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
318
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
g
e
t
B
e
a
n
(
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
199
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
C
o
n
s
t
r
u
c
t
o
r
R
e
s
o
l
v
e
r
.
i
n
s
t
a
n
t
i
a
t
e
U
s
i
n
g
F
a
c
t
o
r
y
M
e
t
h
o
d
(
C
o
n
s
t
r
u
c
t
o
r
R
e
s
o
l
v
e
r
.
j
a
v
a
:
392
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
i
n
s
t
a
n
t
i
a
t
e
U
s
i
n
g
F
a
c
t
o
r
y
M
e
t
h
o
d
(
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
1321
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
c
r
e
a
t
e
B
e
a
n
I
n
s
t
a
n
c
e
(
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
1160
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
d
o
C
r
e
a
t
e
B
e
a
n
(
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
555
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
c
r
e
a
t
e
B
e
a
n
(
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
515
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
l
a
m
b
d
a
0(AbstractBeanFactory.java:320) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:392) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1321) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda
0(AbstractBeanFactory.java:320)atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)atorg.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:392)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1321)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)atorg.springframework.beans.factory.support.AbstractBeanFactory.lambdadoGetBean
0
(
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
320
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
D
e
f
a
u
l
t
S
i
n
g
l
e
t
o
n
B
e
a
n
R
e
g
i
s
t
r
y
.
g
e
t
S
i
n
g
l
e
t
o
n
(
D
e
f
a
u
l
t
S
i
n
g
l
e
t
o
n
B
e
a
n
R
e
g
i
s
t
r
y
.
j
a
v
a
:
222
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
d
o
G
e
t
B
e
a
n
(
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
318
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
g
e
t
B
e
a
n
(
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
199
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
c
o
n
t
e
x
t
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
A
p
p
l
i
c
a
t
i
o
n
C
o
n
t
e
x
t
.
g
e
t
B
e
a
n
(
A
b
s
t
r
a
c
t
A
p
p
l
i
c
a
t
i
o
n
C
o
n
t
e
x
t
.
j
a
v
a
:
1105
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
c
o
n
t
e
x
t
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
A
p
p
l
i
c
a
t
i
o
n
C
o
n
t
e
x
t
.
f
i
n
i
s
h
B
e
a
n
F
a
c
t
o
r
y
I
n
i
t
i
a
l
i
z
a
t
i
o
n
(
A
b
s
t
r
a
c
t
A
p
p
l
i
c
a
t
i
o
n
C
o
n
t
e
x
t
.
j
a
v
a
:
867
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
c
o
n
t
e
x
t
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
A
p
p
l
i
c
a
t
i
o
n
C
o
n
t
e
x
t
.
r
e
f
r
e
s
h
(
A
b
s
t
r
a
c
t
A
p
p
l
i
c
a
t
i
o
n
C
o
n
t
e
x
t
.
j
a
v
a
:
549
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
o
o
t
.
S
p
r
i
n
g
A
p
p
l
i
c
a
t
i
o
n
.
r
e
f
r
e
s
h
(
S
p
r
i
n
g
A
p
p
l
i
c
a
t
i
o
n
.
j
a
v
a
:
743
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
o
o
t
.
S
p
r
i
n
g
A
p
p
l
i
c
a
t
i
o
n
.
r
e
f
r
e
s
h
C
o
n
t
e
x
t
(
S
p
r
i
n
g
A
p
p
l
i
c
a
t
i
o
n
.
j
a
v
a
:
390
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
o
o
t
.
S
p
r
i
n
g
A
p
p
l
i
c
a
t
i
o
n
.
r
u
n
(
S
p
r
i
n
g
A
p
p
l
i
c
a
t
i
o
n
.
j
a
v
a
:
312
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
o
o
t
.
t
e
s
t
.
c
o
n
t
e
x
t
.
S
p
r
i
n
g
B
o
o
t
C
o
n
t
e
x
t
L
o
a
d
e
r
.
l
o
a
d
C
o
n
t
e
x
t
(
S
p
r
i
n
g
B
o
o
t
C
o
n
t
e
x
t
L
o
a
d
e
r
.
j
a
v
a
:
127
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
t
e
s
t
.
c
o
n
t
e
x
t
.
c
a
c
h
e
.
D
e
f
a
u
l
t
C
a
c
h
e
A
w
a
r
e
C
o
n
t
e
x
t
L
o
a
d
e
r
D
e
l
e
g
a
t
e
.
l
o
a
d
C
o
n
t
e
x
t
I
n
t
e
r
n
a
l
(
D
e
f
a
u
l
t
C
a
c
h
e
A
w
a
r
e
C
o
n
t
e
x
t
L
o
a
d
e
r
D
e
l
e
g
a
t
e
.
j
a
v
a
:
99
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
t
e
s
t
.
c
o
n
t
e
x
t
.
c
a
c
h
e
.
D
e
f
a
u
l
t
C
a
c
h
e
A
w
a
r
e
C
o
n
t
e
x
t
L
o
a
d
e
r
D
e
l
e
g
a
t
e
.
l
o
a
d
C
o
n
t
e
x
t
(
D
e
f
a
u
l
t
C
a
c
h
e
A
w
a
r
e
C
o
n
t
e
x
t
L
o
a
d
e
r
D
e
l
e
g
a
t
e
.
j
a
v
a
:
117
)
.
.
.
25
m
o
r
e
C
a
u
s
e
d
b
y
:
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
B
e
a
n
C
r
e
a
t
i
o
n
E
x
c
e
p
t
i
o
n
:
E
r
r
o
r
c
r
e
a
t
i
n
g
b
e
a
n
w
i
t
h
n
a
m
e
′
d
a
t
a
S
o
u
r
c
e
′
d
e
f
i
n
e
d
i
n
c
l
a
s
s
p
a
t
h
r
e
s
o
u
r
c
e
[
o
r
g
/
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
/
b
o
o
t
/
a
u
t
o
c
o
n
f
i
g
u
r
e
/
j
d
b
c
/
D
a
t
a
S
o
u
r
c
e
C
o
n
f
i
g
u
r
a
t
i
o
n
0(AbstractBeanFactory.java:320) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1105) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:743) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:390) at org.springframework.boot.SpringApplication.run(SpringApplication.java:312) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:127) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) ... 25 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration
0(AbstractBeanFactory.java:320)atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)atorg.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1105)atorg.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)atorg.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)atorg.springframework.boot.SpringApplication.refresh(SpringApplication.java:743)atorg.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:390)atorg.springframework.boot.SpringApplication.run(SpringApplication.java:312)atorg.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:127)atorg.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)atorg.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117)...25moreCausedby:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname′dataSource′definedinclasspathresource[org/springframework/boot/autoconfigure/jdbc/DataSourceConfigurationHikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method ‘dataSource’ threw exception; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties
D
a
t
a
S
o
u
r
c
e
B
e
a
n
C
r
e
a
t
i
o
n
E
x
c
e
p
t
i
o
n
:
F
a
i
l
e
d
t
o
d
e
t
e
r
m
i
n
e
a
s
u
i
t
a
b
l
e
d
r
i
v
e
r
c
l
a
s
s
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
C
o
n
s
t
r
u
c
t
o
r
R
e
s
o
l
v
e
r
.
i
n
s
t
a
n
t
i
a
t
e
(
C
o
n
s
t
r
u
c
t
o
r
R
e
s
o
l
v
e
r
.
j
a
v
a
:
627
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
C
o
n
s
t
r
u
c
t
o
r
R
e
s
o
l
v
e
r
.
i
n
s
t
a
n
t
i
a
t
e
U
s
i
n
g
F
a
c
t
o
r
y
M
e
t
h
o
d
(
C
o
n
s
t
r
u
c
t
o
r
R
e
s
o
l
v
e
r
.
j
a
v
a
:
607
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
i
n
s
t
a
n
t
i
a
t
e
U
s
i
n
g
F
a
c
t
o
r
y
M
e
t
h
o
d
(
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
1321
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
c
r
e
a
t
e
B
e
a
n
I
n
s
t
a
n
c
e
(
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
1160
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
d
o
C
r
e
a
t
e
B
e
a
n
(
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
555
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
c
r
e
a
t
e
B
e
a
n
(
A
b
s
t
r
a
c
t
A
u
t
o
w
i
r
e
C
a
p
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
515
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
l
a
m
b
d
a
DataSourceBeanCreationException: Failed to determine a suitable driver class at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:627) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:607) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1321) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda
DataSourceBeanCreationException:Failedtodetermineasuitabledriverclassatorg.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:627)atorg.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:607)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1321)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)atorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)atorg.springframework.beans.factory.support.AbstractBeanFactory.lambdadoGetBean
0
(
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
320
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
D
e
f
a
u
l
t
S
i
n
g
l
e
t
o
n
B
e
a
n
R
e
g
i
s
t
r
y
.
g
e
t
S
i
n
g
l
e
t
o
n
(
D
e
f
a
u
l
t
S
i
n
g
l
e
t
o
n
B
e
a
n
R
e
g
i
s
t
r
y
.
j
a
v
a
:
222
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
d
o
G
e
t
B
e
a
n
(
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
318
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
g
e
t
B
e
a
n
(
A
b
s
t
r
a
c
t
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
199
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
c
o
n
f
i
g
.
D
e
p
e
n
d
e
n
c
y
D
e
s
c
r
i
p
t
o
r
.
r
e
s
o
l
v
e
C
a
n
d
i
d
a
t
e
(
D
e
p
e
n
d
e
n
c
y
D
e
s
c
r
i
p
t
o
r
.
j
a
v
a
:
277
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
D
e
f
a
u
l
t
L
i
s
t
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
d
o
R
e
s
o
l
v
e
D
e
p
e
n
d
e
n
c
y
(
D
e
f
a
u
l
t
L
i
s
t
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
1251
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
D
e
f
a
u
l
t
L
i
s
t
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
r
e
s
o
l
v
e
D
e
p
e
n
d
e
n
c
y
(
D
e
f
a
u
l
t
L
i
s
t
a
b
l
e
B
e
a
n
F
a
c
t
o
r
y
.
j
a
v
a
:
1171
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
C
o
n
s
t
r
u
c
t
o
r
R
e
s
o
l
v
e
r
.
r
e
s
o
l
v
e
A
u
t
o
w
i
r
e
d
A
r
g
u
m
e
n
t
(
C
o
n
s
t
r
u
c
t
o
r
R
e
s
o
l
v
e
r
.
j
a
v
a
:
857
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
f
a
c
t
o
r
y
.
s
u
p
p
o
r
t
.
C
o
n
s
t
r
u
c
t
o
r
R
e
s
o
l
v
e
r
.
c
r
e
a
t
e
A
r
g
u
m
e
n
t
A
r
r
a
y
(
C
o
n
s
t
r
u
c
t
o
r
R
e
s
o
l
v
e
r
.
j
a
v
a
:
760
)
.
.
.
52
m
o
r
e
C
a
u
s
e
d
b
y
:
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
e
a
n
s
.
B
e
a
n
I
n
s
t
a
n
t
i
a
t
i
o
n
E
x
c
e
p
t
i
o
n
:
F
a
i
l
e
d
t
o
i
n
s
t
a
n
t
i
a
t
e
[
c
o
m
.
z
a
x
x
e
r
.
h
i
k
a
r
i
.
H
i
k
a
r
i
D
a
t
a
S
o
u
r
c
e
]
:
F
a
c
t
o
r
y
m
e
t
h
o
d
′
d
a
t
a
S
o
u
r
c
e
′
t
h
r
e
w
e
x
c
e
p
t
i
o
n
;
n
e
s
t
e
d
e
x
c
e
p
t
i
o
n
i
s
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
o
o
t
.
a
u
t
o
c
o
n
f
i
g
u
r
e
.
j
d
b
c
.
D
a
t
a
S
o
u
r
c
e
P
r
o
p
e
r
t
i
e
s
0(AbstractBeanFactory.java:320) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760) ... 52 more Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties
0(AbstractBeanFactory.java:320)atorg.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)atorg.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)atorg.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1251)atorg.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171)atorg.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857)atorg.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760)...52moreCausedby:org.springframework.beans.BeanInstantiationException:Failedtoinstantiate[com.zaxxer.hikari.HikariDataSource]:Factorymethod′dataSource′threwexception;nestedexceptionisorg.springframework.boot.autoconfigure.jdbc.DataSourcePropertiesDataSourceBeanCreationException: Failed to determine a suitable driver class
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:622)
… 66 more
Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties
D
a
t
a
S
o
u
r
c
e
B
e
a
n
C
r
e
a
t
i
o
n
E
x
c
e
p
t
i
o
n
:
F
a
i
l
e
d
t
o
d
e
t
e
r
m
i
n
e
a
s
u
i
t
a
b
l
e
d
r
i
v
e
r
c
l
a
s
s
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
o
o
t
.
a
u
t
o
c
o
n
f
i
g
u
r
e
.
j
d
b
c
.
D
a
t
a
S
o
u
r
c
e
P
r
o
p
e
r
t
i
e
s
.
d
e
t
e
r
m
i
n
e
D
r
i
v
e
r
C
l
a
s
s
N
a
m
e
(
D
a
t
a
S
o
u
r
c
e
P
r
o
p
e
r
t
i
e
s
.
j
a
v
a
:
233
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
o
o
t
.
a
u
t
o
c
o
n
f
i
g
u
r
e
.
j
d
b
c
.
D
a
t
a
S
o
u
r
c
e
P
r
o
p
e
r
t
i
e
s
.
i
n
i
t
i
a
l
i
z
e
D
a
t
a
S
o
u
r
c
e
B
u
i
l
d
e
r
(
D
a
t
a
S
o
u
r
c
e
P
r
o
p
e
r
t
i
e
s
.
j
a
v
a
:
174
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
o
o
t
.
a
u
t
o
c
o
n
f
i
g
u
r
e
.
j
d
b
c
.
D
a
t
a
S
o
u
r
c
e
C
o
n
f
i
g
u
r
a
t
i
o
n
.
c
r
e
a
t
e
D
a
t
a
S
o
u
r
c
e
(
D
a
t
a
S
o
u
r
c
e
C
o
n
f
i
g
u
r
a
t
i
o
n
.
j
a
v
a
:
43
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
o
o
t
.
a
u
t
o
c
o
n
f
i
g
u
r
e
.
j
d
b
c
.
D
a
t
a
S
o
u
r
c
e
C
o
n
f
i
g
u
r
a
t
i
o
n
DataSourceBeanCreationException: Failed to determine a suitable driver class at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:233) at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.initializeDataSourceBuilder(DataSourceProperties.java:174) at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:43) at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration
DataSourceBeanCreationException:Failedtodetermineasuitabledriverclassatorg.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:233)atorg.springframework.boot.autoconfigure.jdbc.DataSourceProperties.initializeDataSourceBuilder(DataSourceProperties.java:174)atorg.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:43)atorg.springframework.boot.autoconfigure.jdbc.DataSourceConfigurationHikari.dataSource(DataSourceConfiguration.java:85)
at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration
H
i
k
a
r
i
Hikari
Hikari
E
n
h
a
n
c
e
r
B
y
S
p
r
i
n
g
C
G
L
I
B
EnhancerBySpringCGLIB
EnhancerBySpringCGLIB
73
d
64705.
C
G
L
I
B
73d64705.CGLIB
73d64705.CGLIBdataSource
0
(
<
g
e
n
e
r
a
t
e
d
>
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
o
o
t
.
a
u
t
o
c
o
n
f
i
g
u
r
e
.
j
d
b
c
.
D
a
t
a
S
o
u
r
c
e
C
o
n
f
i
g
u
r
a
t
i
o
n
0(<generated>) at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration
0(<generated>)atorg.springframework.boot.autoconfigure.jdbc.DataSourceConfigurationHikari
E
n
h
a
n
c
e
r
B
y
S
p
r
i
n
g
C
G
L
I
B
EnhancerBySpringCGLIB
EnhancerBySpringCGLIB73d64705
F
a
s
t
C
l
a
s
s
B
y
S
p
r
i
n
g
C
G
L
I
B
FastClassBySpringCGLIB
FastClassBySpringCGLIBe983cca7.invoke()
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer
B
e
a
n
M
e
t
h
o
d
I
n
t
e
r
c
e
p
t
o
r
.
i
n
t
e
r
c
e
p
t
(
C
o
n
f
i
g
u
r
a
t
i
o
n
C
l
a
s
s
E
n
h
a
n
c
e
r
.
j
a
v
a
:
363
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
b
o
o
t
.
a
u
t
o
c
o
n
f
i
g
u
r
e
.
j
d
b
c
.
D
a
t
a
S
o
u
r
c
e
C
o
n
f
i
g
u
r
a
t
i
o
n
BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363) at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration
BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363)atorg.springframework.boot.autoconfigure.jdbc.DataSourceConfigurationHikari
E
n
h
a
n
c
e
r
B
y
S
p
r
i
n
g
C
G
L
I
B
EnhancerBySpringCGLIB
EnhancerBySpringCGLIB73d64705.dataSource()
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
… 67 more
而且这样应该也不对,取消数据库库配置我还测试个锤子数据库!!!!!!!!!!!!!!!
4)之后又报错如下:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘com.scbg.dao.ProductCategoryRepositoryTest’: Unsatisfied dependency expressed through field ‘productCategoryRepository’; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘com.scbg.dao.ProductCategoryRepository’ available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:596)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1411)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:391)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:119)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
at org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener.prepareTestInstance(SpringBootDependencyInjectionTestExecutionListener.java:43)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:330)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:78)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:328)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:65)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:292)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:305)
at org.junit.runners.ParentRunner.run(ParentRunner.java:412)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘com.scbg.dao.ProductCategoryRepository’ available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1658)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1217)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1171)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593)
… 29 more
智障!!!!!!!!!!!!!!!
所以前边的问题就是因为这,都不用改,气死了
5)测试save报错
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:279)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:253)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:527)
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$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:144)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$ExposeRepositoryInvocationInterceptor.invoke(CrudMethodMetadataPostProcessor.java:364)
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.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
at com.sun.proxy.$Proxy92.save(Unknown Source)
at com.scbg.dao.ProductCategoryRepositoryTest.saveTest(ProductCategoryRepositoryTest.java:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74)
at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:365)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:330)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:78)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:328)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:65)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:292)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:305)
at org.junit.runners.ParentRunner.run(ParentRunner.java:412)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.hibernate.exception.SQLGrammarException: error performing isolated work
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:79)
at org.hibernate.id.enhanced.TableStructure
1.
g
e
t
N
e
x
t
V
a
l
u
e
(
T
a
b
l
e
S
t
r
u
c
t
u
r
e
.
j
a
v
a
:
125
)
a
t
o
r
g
.
h
i
b
e
r
n
a
t
e
.
i
d
.
e
n
h
a
n
c
e
d
.
N
o
o
p
O
p
t
i
m
i
z
e
r
.
g
e
n
e
r
a
t
e
(
N
o
o
p
O
p
t
i
m
i
z
e
r
.
j
a
v
a
:
40
)
a
t
o
r
g
.
h
i
b
e
r
n
a
t
e
.
i
d
.
e
n
h
a
n
c
e
d
.
S
e
q
u
e
n
c
e
S
t
y
l
e
G
e
n
e
r
a
t
o
r
.
g
e
n
e
r
a
t
e
(
S
e
q
u
e
n
c
e
S
t
y
l
e
G
e
n
e
r
a
t
o
r
.
j
a
v
a
:
482
)
a
t
o
r
g
.
h
i
b
e
r
n
a
t
e
.
e
v
e
n
t
.
i
n
t
e
r
n
a
l
.
A
b
s
t
r
a
c
t
S
a
v
e
E
v
e
n
t
L
i
s
t
e
n
e
r
.
s
a
v
e
W
i
t
h
G
e
n
e
r
a
t
e
d
I
d
(
A
b
s
t
r
a
c
t
S
a
v
e
E
v
e
n
t
L
i
s
t
e
n
e
r
.
j
a
v
a
:
119
)
a
t
o
r
g
.
h
i
b
e
r
n
a
t
e
.
e
v
e
n
t
.
i
n
t
e
r
n
a
l
.
D
e
f
a
u
l
t
P
e
r
s
i
s
t
E
v
e
n
t
L
i
s
t
e
n
e
r
.
e
n
t
i
t
y
I
s
T
r
a
n
s
i
e
n
t
(
D
e
f
a
u
l
t
P
e
r
s
i
s
t
E
v
e
n
t
L
i
s
t
e
n
e
r
.
j
a
v
a
:
192
)
a
t
o
r
g
.
h
i
b
e
r
n
a
t
e
.
e
v
e
n
t
.
i
n
t
e
r
n
a
l
.
D
e
f
a
u
l
t
P
e
r
s
i
s
t
E
v
e
n
t
L
i
s
t
e
n
e
r
.
o
n
P
e
r
s
i
s
t
(
D
e
f
a
u
l
t
P
e
r
s
i
s
t
E
v
e
n
t
L
i
s
t
e
n
e
r
.
j
a
v
a
:
135
)
a
t
o
r
g
.
h
i
b
e
r
n
a
t
e
.
e
v
e
n
t
.
i
n
t
e
r
n
a
l
.
D
e
f
a
u
l
t
P
e
r
s
i
s
t
E
v
e
n
t
L
i
s
t
e
n
e
r
.
o
n
P
e
r
s
i
s
t
(
D
e
f
a
u
l
t
P
e
r
s
i
s
t
E
v
e
n
t
L
i
s
t
e
n
e
r
.
j
a
v
a
:
62
)
a
t
o
r
g
.
h
i
b
e
r
n
a
t
e
.
i
n
t
e
r
n
a
l
.
S
e
s
s
i
o
n
I
m
p
l
.
f
i
r
e
P
e
r
s
i
s
t
(
S
e
s
s
i
o
n
I
m
p
l
.
j
a
v
a
:
800
)
a
t
o
r
g
.
h
i
b
e
r
n
a
t
e
.
i
n
t
e
r
n
a
l
.
S
e
s
s
i
o
n
I
m
p
l
.
p
e
r
s
i
s
t
(
S
e
s
s
i
o
n
I
m
p
l
.
j
a
v
a
:
785
)
a
t
s
u
n
.
r
e
f
l
e
c
t
.
N
a
t
i
v
e
M
e
t
h
o
d
A
c
c
e
s
s
o
r
I
m
p
l
.
i
n
v
o
k
e
0
(
N
a
t
i
v
e
M
e
t
h
o
d
)
a
t
s
u
n
.
r
e
f
l
e
c
t
.
N
a
t
i
v
e
M
e
t
h
o
d
A
c
c
e
s
s
o
r
I
m
p
l
.
i
n
v
o
k
e
(
N
a
t
i
v
e
M
e
t
h
o
d
A
c
c
e
s
s
o
r
I
m
p
l
.
j
a
v
a
:
62
)
a
t
s
u
n
.
r
e
f
l
e
c
t
.
D
e
l
e
g
a
t
i
n
g
M
e
t
h
o
d
A
c
c
e
s
s
o
r
I
m
p
l
.
i
n
v
o
k
e
(
D
e
l
e
g
a
t
i
n
g
M
e
t
h
o
d
A
c
c
e
s
s
o
r
I
m
p
l
.
j
a
v
a
:
43
)
a
t
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
.
M
e
t
h
o
d
.
i
n
v
o
k
e
(
M
e
t
h
o
d
.
j
a
v
a
:
498
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
o
r
m
.
j
p
a
.
S
h
a
r
e
d
E
n
t
i
t
y
M
a
n
a
g
e
r
C
r
e
a
t
o
r
1.getNextValue(TableStructure.java:125) at org.hibernate.id.enhanced.NoopOptimizer.generate(NoopOptimizer.java:40) at org.hibernate.id.enhanced.SequenceStyleGenerator.generate(SequenceStyleGenerator.java:482) at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:119) at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:192) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:135) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:62) at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:800) at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:785) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.orm.jpa.SharedEntityManagerCreator
1.getNextValue(TableStructure.java:125)atorg.hibernate.id.enhanced.NoopOptimizer.generate(NoopOptimizer.java:40)atorg.hibernate.id.enhanced.SequenceStyleGenerator.generate(SequenceStyleGenerator.java:482)atorg.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:119)atorg.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:192)atorg.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:135)atorg.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:62)atorg.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:800)atorg.hibernate.internal.SessionImpl.persist(SessionImpl.java:785)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.lang.reflect.Method.invoke(Method.java:498)atorg.springframework.orm.jpa.SharedEntityManagerCreatorSharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:309)
at com.sun.proxy.
P
r
o
x
y
90.
p
e
r
s
i
s
t
(
U
n
k
n
o
w
n
S
o
u
r
c
e
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
d
a
t
a
.
j
p
a
.
r
e
p
o
s
i
t
o
r
y
.
s
u
p
p
o
r
t
.
S
i
m
p
l
e
J
p
a
R
e
p
o
s
i
t
o
r
y
.
s
a
v
e
(
S
i
m
p
l
e
J
p
a
R
e
p
o
s
i
t
o
r
y
.
j
a
v
a
:
535
)
a
t
s
u
n
.
r
e
f
l
e
c
t
.
N
a
t
i
v
e
M
e
t
h
o
d
A
c
c
e
s
s
o
r
I
m
p
l
.
i
n
v
o
k
e
0
(
N
a
t
i
v
e
M
e
t
h
o
d
)
a
t
s
u
n
.
r
e
f
l
e
c
t
.
N
a
t
i
v
e
M
e
t
h
o
d
A
c
c
e
s
s
o
r
I
m
p
l
.
i
n
v
o
k
e
(
N
a
t
i
v
e
M
e
t
h
o
d
A
c
c
e
s
s
o
r
I
m
p
l
.
j
a
v
a
:
62
)
a
t
s
u
n
.
r
e
f
l
e
c
t
.
D
e
l
e
g
a
t
i
n
g
M
e
t
h
o
d
A
c
c
e
s
s
o
r
I
m
p
l
.
i
n
v
o
k
e
(
D
e
l
e
g
a
t
i
n
g
M
e
t
h
o
d
A
c
c
e
s
s
o
r
I
m
p
l
.
j
a
v
a
:
43
)
a
t
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
.
M
e
t
h
o
d
.
i
n
v
o
k
e
(
M
e
t
h
o
d
.
j
a
v
a
:
498
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
d
a
t
a
.
r
e
p
o
s
i
t
o
r
y
.
c
o
r
e
.
s
u
p
p
o
r
t
.
R
e
p
o
s
i
t
o
r
y
C
o
m
p
o
s
i
t
i
o
n
Proxy90.persist(Unknown Source) at org.springframework.data.jpa.repository.support.SimpleJpaRepository.save(SimpleJpaRepository.java:535) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.data.repository.core.support.RepositoryComposition
Proxy90.persist(UnknownSource)atorg.springframework.data.jpa.repository.support.SimpleJpaRepository.save(SimpleJpaRepository.java:535)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)atjava.lang.reflect.Method.invoke(Method.java:498)atorg.springframework.data.repository.core.support.RepositoryCompositionRepositoryFragments.invoke(RepositoryComposition.java:359)
at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:200)
at org.springframework.data.repository.core.support.RepositoryFactorySupport
I
m
p
l
e
m
e
n
t
a
t
i
o
n
M
e
t
h
o
d
E
x
e
c
u
t
i
o
n
I
n
t
e
r
c
e
p
t
o
r
.
i
n
v
o
k
e
(
R
e
p
o
s
i
t
o
r
y
F
a
c
t
o
r
y
S
u
p
p
o
r
t
.
j
a
v
a
:
644
)
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
.
d
a
t
a
.
r
e
p
o
s
i
t
o
r
y
.
c
o
r
e
.
s
u
p
p
o
r
t
.
R
e
p
o
s
i
t
o
r
y
F
a
c
t
o
r
y
S
u
p
p
o
r
t
ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:644) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.data.repository.core.support.RepositoryFactorySupport
ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:644)atorg.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)atorg.springframework.data.repository.core.support.RepositoryFactorySupportQueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:608)
at org.springframework.data.repository.core.support.RepositoryFactorySupport
Q
u
e
r
y
E
x
e
c
u
t
o
r
M
e
t
h
o
d
I
n
t
e
r
c
e
p
t
o
r
.
l
a
m
b
d
a
QueryExecutorMethodInterceptor.lambda
QueryExecutorMethodInterceptor.lambdainvoke
3
(
R
e
p
o
s
i
t
o
r
y
F
a
c
t
o
r
y
S
u
p
p
o
r
t
.
j
a
v
a
:
595
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
d
a
t
a
.
r
e
p
o
s
i
t
o
r
y
.
c
o
r
e
.
s
u
p
p
o
r
t
.
R
e
p
o
s
i
t
o
r
y
F
a
c
t
o
r
y
S
u
p
p
o
r
t
3(RepositoryFactorySupport.java:595) at org.springframework.data.repository.core.support.RepositoryFactorySupport
3(RepositoryFactorySupport.java:595)atorg.springframework.data.repository.core.support.RepositoryFactorySupportQueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:595)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
… 43 more
Caused by: java.sql.SQLSyntaxErrorException: Table ‘sell.hibernate_sequence’ doesn’t exist
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1003)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
at org.hibernate.id.enhanced.TableStructure.executeQuery(TableStructure.java:216)
at org.hibernate.id.enhanced.TableStructure.access$300(TableStructure.java:46)
at org.hibernate.id.enhanced.TableStructure$1$1.execute(TableStructure.java:138)
at org.hibernate.id.enhanced.TableStructure$1$1.execute(TableStructure.java:126)
at org.hibernate.jdbc.WorkExecutor.executeReturningWork(WorkExecutor.java:55)
at org.hibernate.jdbc.AbstractReturningWork.accept(AbstractReturningWork.java:34)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:57)
… 77 more
6)测试更新,添加日期字段
Caused by: java.sql.SQLSyntaxErrorException: Unknown column ‘productcat0_.create_date’ in ‘field list’
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:1003)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:60)
… 86 more
数据库及实体名字不一致
7)测试更新,数据更新了,但是时间没有自动变化,注解添加
解决不知道原因待探究
8)Lombok插件自动提供getset及totring等
下载没成功,就本地安装,去官网下载对应idea的版本,然后安装上就好了
8)编写categoryservicempl中的findone方法报错
据说sb2.0以后jpa的findone方法改了:
现在貌似可以用findbyid。。。。以后再研究!
之后进行单元测试成功了!
9)enum的使用
10)controller 层注意Java8新特性的使用,复制属性,封装方法。
package com.scbg.controller;
import com.scbg.VO.ProductInfoVO;
import com.scbg.VO.ProductVO;
import com.scbg.VO.ResultVO;
import com.scbg.dataobject.ProductCategory;
import com.scbg.dataobject.ProductInfo;
import com.scbg.service.CategoryService;
import com.scbg.service.ProductService;
import com.scbg.utils.ResultVOUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @program: sell
* @description: 买家商品控制层
* @author: 三层饼干儿
* @create: 2019-08-11 02:17
**/
@RestController
@RequestMapping("/buyer/product")
public class BuyerProductController {
@Autowired
private CategoryService categoryService;
@Autowired
private ProductService productService;
@GetMapping("/list")
public ResultVO list(){
//1.肯定先查询在架的商品
List<ProductInfo> productInfoList = productService.findAll();
//2.查询类目,可以使用拉姆达表达式
List<Integer> categoryTypeList=productInfoList.stream().map(e -> e.getCategoryType()).collect(Collectors.toList());
List<ProductCategory> categoryList = categoryService.findByCategoryTypeIn(categoryTypeList);
//3.数据拼装
ResultVO resultVO = new ResultVO();
List<ProductVO> productVOList= new ArrayList<>();
for (ProductCategory productCategory:categoryList){
ProductVO productVO = new ProductVO();
productVO.setCategoryType(productCategory.getCategoryType());
productVO.setCategoryName(productCategory.getCategoryName());
List<ProductInfoVO> productInfoVOList = new ArrayList<>();
for (ProductInfo productInfo:productInfoList){
if(productInfo.getCategoryType().equals(productCategory.getCategoryType())){
//如果是该商品类目下 产品将其封装到返回值第三层对象中
//属性较多,可以是用属性赋值BeanUtils.copyProperties(productInfo,productInfoVO)
ProductInfoVO productInfoVO = new ProductInfoVO();
BeanUtils.copyProperties(productInfo,productInfoVO);
productInfoVOList.add(productInfoVO);
}
}
productVO.setProductInfoVOList(productInfoVOList);
productVOList.add(productVO);
}
/**
* 重复代码封装方法
*/
return ResultVOUtil.success(productVOList);
}
}
11)设置cookie,看显示效果
12)
13)捎带改改域名吧
虚拟机改servername
本机配置解析
**
改成自己名字后gg,用他的名字吧.以后研究一下怎么整
**
14)订单的传输时对象如果用同一个@Transent,这个对象看下意思
15)订单service思路
16)测试orderserviceimpl报错:
ids for this class must be manually assigned before calling save(): com.scbg.dataobject.OrderMaster
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:351)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:253)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:527)
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$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:144)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$ExposeRepositoryInvocationInterceptor.invoke(CrudMethodMetadataPostProcessor.java:364)
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.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
at com.sun.proxy.$Proxy99.save(Unknown Source)
at com.scbg.service.impl.OrderServiceImpl.create(OrderServiceImpl.java:67)
at com.scbg.service.impl.OrderServiceImpl$$FastClassBySpringCGLIB$$7ff137f0.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
at com.scbg.service.impl.OrderServiceImpl$$EnhancerBySpringCGLIB$$6d298d0c.create(<generated>)
at com.scbg.service.impl.OrderServiceImplTest.create(OrderServiceImplTest.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74)
at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:365)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:330)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:78)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:328)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:65)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:292)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:305)
at org.junit.runners.ParentRunner.run(ParentRunner.java:412)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.scbg.dataobject.OrderMaster
at org.hibernate.id.Assigned.generate(Assigned.java:33)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:119)
at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:192)
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:135)
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:62)
at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:800)
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:785)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.orm.jpa.SharedEntityManagerCreator
S
h
a
r
e
d
E
n
t
i
t
y
M
a
n
a
g
e
r
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
.
i
n
v
o
k
e
(
S
h
a
r
e
d
E
n
t
i
t
y
M
a
n
a
g
e
r
C
r
e
a
t
o
r
.
j
a
v
a
:
309
)
a
t
c
o
m
.
s
u
n
.
p
r
o
x
y
.
SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:309) at com.sun.proxy.
SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:309)atcom.sun.proxy.Proxy91.persist(Unknown Source)
at org.springframework.data.jpa.repository.support.SimpleJpaRepository.save(SimpleJpaRepository.java:535)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.data.repository.core.support.RepositoryComposition
R
e
p
o
s
i
t
o
r
y
F
r
a
g
m
e
n
t
s
.
i
n
v
o
k
e
(
R
e
p
o
s
i
t
o
r
y
C
o
m
p
o
s
i
t
i
o
n
.
j
a
v
a
:
359
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
d
a
t
a
.
r
e
p
o
s
i
t
o
r
y
.
c
o
r
e
.
s
u
p
p
o
r
t
.
R
e
p
o
s
i
t
o
r
y
C
o
m
p
o
s
i
t
i
o
n
.
i
n
v
o
k
e
(
R
e
p
o
s
i
t
o
r
y
C
o
m
p
o
s
i
t
i
o
n
.
j
a
v
a
:
200
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
d
a
t
a
.
r
e
p
o
s
i
t
o
r
y
.
c
o
r
e
.
s
u
p
p
o
r
t
.
R
e
p
o
s
i
t
o
r
y
F
a
c
t
o
r
y
S
u
p
p
o
r
t
RepositoryFragments.invoke(RepositoryComposition.java:359) at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:200) at org.springframework.data.repository.core.support.RepositoryFactorySupport
RepositoryFragments.invoke(RepositoryComposition.java:359)atorg.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:200)atorg.springframework.data.repository.core.support.RepositoryFactorySupportImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:644)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.repository.core.support.RepositoryFactorySupport
Q
u
e
r
y
E
x
e
c
u
t
o
r
M
e
t
h
o
d
I
n
t
e
r
c
e
p
t
o
r
.
d
o
I
n
v
o
k
e
(
R
e
p
o
s
i
t
o
r
y
F
a
c
t
o
r
y
S
u
p
p
o
r
t
.
j
a
v
a
:
608
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
d
a
t
a
.
r
e
p
o
s
i
t
o
r
y
.
c
o
r
e
.
s
u
p
p
o
r
t
.
R
e
p
o
s
i
t
o
r
y
F
a
c
t
o
r
y
S
u
p
p
o
r
t
QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:608) at org.springframework.data.repository.core.support.RepositoryFactorySupport
QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:608)atorg.springframework.data.repository.core.support.RepositoryFactorySupportQueryExecutorMethodInterceptor.lambda$invoke
3
(
R
e
p
o
s
i
t
o
r
y
F
a
c
t
o
r
y
S
u
p
p
o
r
t
.
j
a
v
a
:
595
)
a
t
o
r
g
.
s
p
r
i
n
g
f
r
a
m
e
w
o
r
k
.
d
a
t
a
.
r
e
p
o
s
i
t
o
r
y
.
c
o
r
e
.
s
u
p
p
o
r
t
.
R
e
p
o
s
i
t
o
r
y
F
a
c
t
o
r
y
S
u
p
p
o
r
t
3(RepositoryFactorySupport.java:595) at org.springframework.data.repository.core.support.RepositoryFactorySupport
3(RepositoryFactorySupport.java:595)atorg.springframework.data.repository.core.support.RepositoryFactorySupportQueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:595)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:295)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)
… 53 more
方法中:
BeanUtils.copyProperties(orderDTO,orderMaster);下边将上边覆盖!其实不止这一个属性被覆盖,其他的也被覆盖了。
17) Column ‘order_status’ cannot be null
2019-08-12 11:52:58,500 - HHH000346: Error during managed flush [org.hibernate.exception.ConstraintViolationException: could not execute statement]
org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:296)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:253)
at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:536)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:746)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:714)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:534)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:305)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
at com.scbg.service.impl.OrderServiceImpl$$EnhancerBySpringCGLIB$$9369bcb9.create(<generated>)
at com.scbg.service.impl.OrderServiceImplTest.create(OrderServiceImplTest.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74)
at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:365)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:330)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:78)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:328)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:65)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:292)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:305)
at org.junit.runners.ParentRunner.run(ParentRunner.java:412)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.hibernate.exception.ConstraintViolationException: could not execute statement
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:59)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:178)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3176)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3690)
at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:90)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:604)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:478)
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:356)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1454)
at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:511)
at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3290)
at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2486)
at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:473)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:178)
at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access
300
(
J
d
b
c
R
e
s
o
u
r
c
e
L
o
c
a
l
T
r
a
n
s
a
c
t
i
o
n
C
o
o
r
d
i
n
a
t
o
r
I
m
p
l
.
j
a
v
a
:
39
)
a
t
o
r
g
.
h
i
b
e
r
n
a
t
e
.
r
e
s
o
u
r
c
e
.
t
r
a
n
s
a
c
t
i
o
n
.
b
a
c
k
e
n
d
.
j
d
b
c
.
i
n
t
e
r
n
a
l
.
J
d
b
c
R
e
s
o
u
r
c
e
L
o
c
a
l
T
r
a
n
s
a
c
t
i
o
n
C
o
o
r
d
i
n
a
t
o
r
I
m
p
l
300(JdbcResourceLocalTransactionCoordinatorImpl.java:39) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl
300(JdbcResourceLocalTransactionCoordinatorImpl.java:39)atorg.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImplTransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:271)
at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:104)
at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:532)
… 40 more
Caused by: java.sql.SQLIntegrityConstraintViolationException: Column ‘order_status’ cannot be null
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
order DTD没有这个默认属性,复制属性,这属性覆盖成null