要在其中卸载的根控制器
import com.chvalov.library.Repository.AuthorRepository;
import com.chvalov.library.Repository.BookRepository;
import lombok.extern.java.Log;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Controller
@Log
public class RedirectController {
@Autowired
private AuthorRepository authorRepository;
@Autowired
private BookRepository bookRepository;
@RequestMapping(value = "", method = RequestMethod.GET)
public String baseUrlRedirect(HttpServletRequest request, HttpServletResponse httpServletResponse) {
// Пустота
System.out.println(bookRepository.findByNameContainingIgnoreCaseOrAuthorFioContainingIgnoreCaseOrderByName("а","па"));
System.out.println(authorRepository.findByFioContainingIgnoreCaseOrderByFio("ча"));
// Работает
System.out.println(authorRepository.findOne(25L));
System.out.println(authorRepository.findAll());
System.out.println(bookRepository.findOne(20L));
System.out.println(bookRepository.findAll());
return "ok";
}
}
道:
AuthDao.java
import com.chvalov.library.Entity.Author;
// описывает специфичное поведение для работы с авторами
public interface AuthorDao extends GeneralDAO<Author>{
}
GeneralDao.java
import java.util.List;
// общее поведения для всех DAO объектов
public interface GeneralDAO<T>{
List<T> getAll();
List<T> search(String... searchString);
T get(long id); // получение объекта по id
T save(T obj);// save - обновляет или добавляет объект (один метод на 2 действия)
void delete(T object);
}
作者Repository.java
import com.chvalov.library.Entity.Author;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository // специальный Spring bean, который помечает интерфейс как Repository
public interface AuthorRepository extends JpaRepository<Author, Long> {// JpaRepository - содержит CRUD функционал + постраничность
// на основании имени метода будет построен Hibernate запрос
List<Author> findByFioContainingIgnoreCaseOrderByFio(String fio);
}
在做的时候:
authorRepository.findByFioContainingIgnoreCaseOrderByFio("ча");
返回空数据,控制台中的SQL查询本身是正确的,数据库中有记录并且正常被Navicat & phpMyAdmin中的同一个查询选中
此代码返回所需的数据:
authorRepository.findOne(25L);
authorRepository.findAll();
什么问题,为什么返回空数据?
UPD: MySQL 日志:
2018-01-20T04:02:37.615823Z 754 Query /* select generatedAlias0 from Author as generatedAlias0 where upper(generatedAlias0.fio) like upper(:param0) order by generatedAlias0.fio asc */ select author0_.id as id1_0_, author0_.birthday as birthday2_0_, author0_.fio as fio3_0_ from library.author author0_ where upper(author0_.fio) like upper('%??%') order by author0_.fio asc
2018-01-20T04:02:37.616909Z 754 Query set session transaction read only
2018-01-20T04:02:37.617245Z 754 Query SET autocommit=0
2018-01-20T04:02:37.618412Z 754 Query select author0_.id as id1_0_0_, author0_.birthday as birthday2_0_0_, author0_.fio as fio3_0_0_ from library.author author0_ where author0_.id=25
2018-01-20T04:02:37.621222Z 754 Query commit
2018-01-20T04:02:37.635841Z 754 Query SET autocommit=1
2018-01-20T04:02:37.638517Z 754 Query select @@session.tx_read_only
2018-01-20T04:02:37.639451Z 754 Query set session transaction read write
2018-01-20T04:02:37.641171Z 754 Query /* select generatedAlias0 from Author as generatedAlias0 where upper(generatedAlias0.fio) like upper(:param0) order by generatedAlias0.fio asc */ select author0_.id as id1_0_, author0_.birthday as birthday2_0_, author0_.fio as fio3_0_ from library.author author0_ where upper(author0_.fio) like upper('%??%') order by author0_.fio asc


在application.properties文件 中添加一行:
spring.datasource.url=jdbc:mysql://<IP>:<PORT>/<DB_NAME>添加?useUnicode=yes&characterEncoding=UTF-8&characterSetResults=UTF-8