如何使用Java Spring使用许多SQL查询?
我正在尝试制作一个搜索栏。该搜索栏必须找到具有自己名字或所有者姓名的动物。 Animal 表有 user_id 作为外键。我必须找到带有其所有者名称的动物,因为我认为将用户表连接到动物。我使用 MySQL。
AnimalRepository.java
public interface AnimalRepository extends JpaRepository<Animal,Integer > {
public Long countById(Integer id);
@Query(value = "select * from animal join users where name like %:keyword% or where users.name like %:keyword%", nativeQuery = true)
List<Animal> findByKeyword(@Param("keyword") String keyword);
}
SearchPageController.java
@Autowired
private AnimalService animalService;
@RequestMapping(path = {"/","/search"})
public String home(Animal shop, Model model, String keyword) {
if(keyword!=null) {
List<Animal> list = animalService.getByKeyword(keyword);
model.addAttribute("list", list);
}else {
List<Animal> list = animalService.getAllAnimals();
model.addAttribute("list", list);}
return "index";
}
AnimalService.java
public List<Animal> getAllAnimals(){
List<Animal> list = (List<Animal>)repo.findAll();
return list;
}
public List<Animal> getByKeyword(String keyword){
return repo.findByKeyword(keyword);
}
此处的所有代码:https://github.com/Furkan-Ahmet-Ozdemir/Spring-vet
**已解决:“从动物中选择a.*,在u.id = a.user_id上内部加入用户u,其中a.name如%:keyword%或u.first_name如%:keyword%”**
I am trying to make a search bar .This search bar must find animals with own name or owner name. Animal table have user_id as foreign key . I have to find animals with their owner name for that i think joining users table to animals .I use MySQL.
AnimalRepository.java
public interface AnimalRepository extends JpaRepository<Animal,Integer > {
public Long countById(Integer id);
@Query(value = "select * from animal join users where name like %:keyword% or where users.name like %:keyword%", nativeQuery = true)
List<Animal> findByKeyword(@Param("keyword") String keyword);
}
SearchPageController.java
@Autowired
private AnimalService animalService;
@RequestMapping(path = {"/","/search"})
public String home(Animal shop, Model model, String keyword) {
if(keyword!=null) {
List<Animal> list = animalService.getByKeyword(keyword);
model.addAttribute("list", list);
}else {
List<Animal> list = animalService.getAllAnimals();
model.addAttribute("list", list);}
return "index";
}
AnimalService.java
public List<Animal> getAllAnimals(){
List<Animal> list = (List<Animal>)repo.findAll();
return list;
}
public List<Animal> getByKeyword(String keyword){
return repo.findByKeyword(keyword);
}
All code here: https://github.com/Furkan-Ahmet-Ozdemir/Spring-vet
** SOLVED: "select a.* from animals a inner join users u on u.id=a.user_id where a.name like %:keyword% or u.first_name like %:keyword%" **
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请试试这个
Please try this one