分类
日常记录

spring boot 的报错

1.dao 字段名字没映射好

...

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2020-09-03 19:39:23.978 ERROR 28777 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract com.gdp.demo3.entity.User com.gdp.demo3.dao.UserDao.findByUsername(java.lang.String)!

...

大概这样一段报错,实际是我数据库和实体类字段没对应上。

package com.xxx.xxx.entity

import java.util.*
import javax.persistence.*
import javax.validation.constraints.NotEmpty
import javax.validation.constraints.Size

@Table(name = "user")
@Entity
class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    var id: Long = -1

    @Column(unique = true)
    @NotEmpty(message = "用户名不能为空")
    @Size(message = "用户名长度在1~20之间", max = 100, min = 1)
    var userName: String = ""

    @NotEmpty(message = "密码不能为空")
    @Size(message = "密码长度在6~100之间", max = 100, min = 6)
    var password: String = ""
}

数据库中 userName 是全部小写,没有任何分割符的,改成 username 就好了。

2.Freemarker 页面老是 404

Spring Boot 2.3.3 的时候发现的,Freemarker 的默认后缀发生了变化,以前可能是 .ftl,现在是 .ftlh。可能是这个造成不能找的模板的。

application.properties 文件设置 spring.freemarker.suffix=.ftlh 可以自己随意设置后缀。

spring boot 的报错