jpa条件查询没有结果返回

昨天学习JPA看到自定义查询,果断上手一试,没想到折了,有没有老哥帮瞅瞅为什么查不到结果,百度一圈也没答案

实体

@Repository
@Entity
@Table(name = "tb_person")
public class Person {
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    @Column(name = "name")
    private String name;

    @Column(name = "phone")
    private String phone;

    @Column(name = "gender")
    private String gender;

    @Column(name = "age")
    private Integer age;

    @Column(name = "weight")
    private double weight;

    @Column(name = "city")
    private String city;

    @Column(name = "inter_name")
    private String interName;

    public Person() {
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public double getWeight() {
        return weight;
    }

    public void setWeight(double weight) {
        this.weight = weight;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getInterName() {
        return interName;
    }

    public void setInterName(String interName) {
        this.interName = interName;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", phone='" + phone + '\'' +
                ", gender='" + gender + '\'' +
                ", age=" + age +
                ", weight=" + weight +
                ", city='" + city + '\'' +
                ", interName='" + interName + '\'' +
                '}';
    }
}

dao层

public interface PersonDao extends JpaRepository {

    Person findByName(String name);

    Person findByNameLike(String name);

    Person findByInterName(String interName);

    Person findByInterNameLike(String interName);

    Person findByAge(Integer age);

    Person findByGender(String gender);

    Person findByPhone(String phone);

    List findByPhoneLike(String phone);

}

测试类

@RunWith(SpringRunner.class)
@SpringBootTest(classes = BootApp.class)
public class JpaFunctionTest {
    @Resource
    PersonDao personDao;

    @Test
    public void testSave() {
        personDao.findById(1).ifPresent(System.out::println);

        System.out.println(personDao.findByName("丽丽"));

        System.out.println(personDao.findByName("康康"));

        System.out.println(personDao.findByNameLike("%明%"));

        System.out.println(personDao.findByInterName("天下第一"));

        System.out.println(personDao.findByInterNameLike("%天%"));

        System.out.println(personDao.findByAge(22));

        System.out.println(personDao.findByGender("男"));

        System.out.println(personDao.findByPhone("13124545645"));

        System.out.println(personDao.findByPhoneLike("%1"));

    }

}

数据库

img

结果

img

再三检查方法都没有问题,发现通过name查询的没有结果,本来以为String字符集的问题,查看也都是utf8,而且String的phone也查出来了结果,最离奇的是我把控制台的sql语句复制也是能查到结果,

img

有没有老哥知道是那里出了问题

问题:使用中文进行查询是返回null,中文在传输过程中出现编码异常
解决方法:在数据库连接配置加上这个
useUnicode=true&characterEncoding=UTF-8
用来保证中文传输不会出现异常

数据库URL=jdbc:mysql://localhost:3306/database_name?useUnicode=true&characterEncoding=UTF-8