2013-04-05 40 views
0

我是初学者。如何在春季创建我的queru

我尝试创建一个自定义查找器。并使用“repository jpa”命令。 这是我的仓库:

@RooJpaRepository(domainType = Speaker.class) 
public interface SpeakerRepository { 
    @Query("select u from Speaker u where username = :un") 
    public List<Speaker> findllAllSpeakersNamed(@Param("un") String lastname); 
    } 

服务:

public class SpeakerServiceImpl implements SpeakerService { 
@Autowired 
SpeakerRepository speakerRepository; 
public List<Speaker> findllAllSpeakersNamed(String lastName) { 
    return speakerRepository.findllAllSpeakersNamed(lastName); 
} 
} 

和控制器:

@RequestMapping("/findASpeaker/**") 
@Controller 
public class FindASpeaker { 

    @Autowired 
    SpeakerServiceImpl speakerServiceImpl; 

    @RequestMapping(method = RequestMethod.POST, value = "{id}") 
    public void post(@PathVariable Long id, ModelMap modelMap, HttpServletRequest request, HttpServletResponse response) { 
    } 


    @RequestMapping 
    public String index(@RequestParam("lastname")String lastname) { 
     String Lastname=lastname; 
     ModelMap modle=new ModelMap(); 


     List<Speaker> list = speakerServiceImpl.findllAllSpeakersNamed(Lastname); 
     modle.addAttribute("speakers",list); 

     return "findASpeaker/index"; 
    } 

} 

这可不行,,,,

回答

0

你的资料库是一个接口。 Spring Data应该根据方法的名称自动检测查询,例如“List findUsersByNameDesc(String name);”将自动创建一个方法来查询给定名称的所有用户。 @Query只是告诉它不要猜测查询,而是使用你提供的那个。一个例子可以是found here