@Entity public class Mointors_Api { @Id @GeneratedValue private Integer id; private Date createTime; public Mointors_Api(){ }
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
@RestController public class ApiController {
private final
ApiRepository apiRepository;
@Autowired
public ApiController(ApiRepository apiRepository) {
this.apiRepository = apiRepository;
}
@GetMapping(value = "/api")
public List<Mointors_Api> apiList(Mointors_Api api) {
return apiRepository.findAll(Example.of(api));
}
}
接口返回的结果数据和我数据库里的一一对应 springboot 它咋知道我定义的 createTime 参数就是我数据库里的 createtime 呢
1
3a3Mp112 2018-03-16 15:44:32 +08:00
jdbc
|
2
johnj 2018-03-16 15:48:29 +08:00
根据命名规则
|
3
shayang888 OP @3a3Mp112
spring: profiles: active: a datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/mointor?useSSL=false username: root password: 123456 jpa: hibernate: ddl-auto: update show-sql: true 这里能反应出啥来?我还是没明白 为啥是一一对应呢 |
4
shayang888 OP @johnj
我对 Mointors_Api 里修改参数名 我发现也是取到了正确的值啊 |
5
shalk 2018-03-16 15:59:27 +08:00 via iPhone
既然 show sql 为 true 了 看日志里的 sql 吧
|
6
3a3Mp112 2018-03-16 16:12:41 +08:00
通过日志你能看到,执行操作实际上被翻译为了 sql 语句。
|
7
johnj 2018-03-16 16:13:49 +08:00
修改后的代码看看?
|
8
shayang888 OP @3a3Mp112 Hibernate: select mointors_a0_.id as id1_0_, mointors_a0_.method as method2_0_, mointors_a0_.param as param3_0_, mointors_a0_.project_id as project_4_0_, mointors_a0_.response_time as response5_0_, mointors_a0_.status as status6_0_, mointors_a0_.url as url7_0_ from mointors_api mointors_a0_ where ?=1
|
9
shayang888 OP @shalk Hibernate: select mointors_a0_.id as id1_0_, mointors_a0_.method as method2_0_, mointors_a0_.param as param3_0_, mointors_a0_.project_id as project_4_0_, mointors_a0_.response_time as response5_0_, mointors_a0_.status as status6_0_, mointors_a0_.url as url7_0_ from mointors_api mointors_a0_ where ?=1
|
10
shayang888 OP @johnj 我就是去掉了一个参数 它返回的结果里也正好没有我去掉的那个参数
|
11
Miy4mori 2018-03-16 16:45:41 +08:00
```
jpa: open-in-view: false hibernate: ddl-auto: none naming: physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy ``` 因为有默认策略保证实体映射。 |
12
shayang888 OP @Miy4mori 哦 就是说这是 springboot 的策略是吗?
|
13
Miy4mori 2018-03-16 17:04:10 +08:00 2
@shayang888 SpringBoot 会自动配置很多东西,即使有些配置你虽然没有显式声明。这个命名策略你也可以自己配置,只是你没有显式声明,SpringBoot 给你加上了默认配置。
|
14
shayang888 OP @Miy4mori 谢谢 刚接触 spring boot
|