2017-11-06 1 views
0

Die Frage ist: Wo soll ich neu sortieren oder neue Paginierung in richtiger Weise mit Spring MVC?Proper Weg zur Verwendung von PagingAndSortingRepository in meinem Projekt

Ich habe viele Beispielanwendungen gelesen und die meisten von ihnen sind nur innerhalb der "Runable" (@SpringBootApplication) -Klasse, aber ich denke, es ist keine gute Praxis. (Ich beschloss, es zu setzen in meinem Controller-, aber ich bin nicht 100% sicher darüber. Vielleicht komplette Logik im Dienst sein sollte und nur klar @RequestMapping in-Controller enthalten sein sollte?

Gerade jetzt Struktur Projekt sieht aus wie dies:

ProjectStructure

ich bin mir nicht sicher, ob mein Code wichtig ist, aber Sie können es unter überprüfen

@RestController 
public class PhoneController { 

@Autowired 
private PhoneService phoneService; 

@Autowired 
private PhoneRepository phoneRepository; 

@RequestMapping(method = RequestMethod.GET, value = "/phones") 
public List<Phone> getAllPhones() {return phoneService.getAllPhones();} 

@RequestMapping(method = RequestMethod.GET, value = "/phones/{id}") 
public Phone getPhone(@PathVariable Long id){return phoneService.getPhone(id);} 

@RequestMapping(method = RequestMethod.POST, value = "/phones/{id}") 
public void addPhone(@RequestBody Phone phone){ 
    phoneService.addPhone(phone); 
} 

@RequestMapping(method = RequestMethod.PUT, value = "/phones/{id}") 
public void updatePhone(@RequestBody Phone phone, @PathVariable Long id){phoneService.updatePhone(id, phone);} 

@RequestMapping(method = RequestMethod.DELETE, value = "/phones/{id}") 
public void deletePhone(@PathVariable Long id){ phoneService.deletePhone(id);} 


//sorting... 
@RequestMapping(method = RequestMethod.GET, value = "phones/year/{temp}") 
public List<Phone> getPhoneByYearOfReleaseGreaterThan(@PathVariable Integer temp){ 
    Sort sort = new Sort(new Sort.Order(Sort.Direction.ASC, "brand")); 
    List<Phone> phones = phoneRepository.findByYearOfReleaseGreaterThan(temp, sort); 
    for(Phone p: phones){ 
     System.out.println(p); 
    } 
    return phones; 
} 


//pagination... 
@RequestMapping(method = RequestMethod.GET, value = "phones/quarter/{temp}") 
public List<Phone> getPhoneByQuarterOfRelease(@PathVariable String temp){ 
Sort sort = new Sort(new Sort.Order(Sort.Direction.ASC, "brand")); 
Pageable pageable = new PageRequest(0, 5, sort); 
List<Phone> phones = phoneRepository.findByQuarterOfRelease(temp, pageable); 
    for (Phone p : phones) { 
     System.out.println(p); 
    } 
    return phones; 
} 

}

.

Das ist mein PhoneRepistory:

public interface PhoneRepository extends CrudRepository<Phone, String> { 
Phone findById(Long id); 
@Transactional 
Phone deleteById(Long id); 

//sorting... 
List<Phone> findByYearOfReleaseGreaterThan(Integer yearOfRelease, Sort sort); 
//pagination... 
List<Phone> findByQuarterOfRelease(String quarterOfRelease, Pageable pageable); 

}

Antwort

1

try Federdaten Spezifikation für Paginierung zu erstellen und Sortierung

Klick here mehr zu lesen, wie Spezifikation

+0

zu schaffen, ich werde lies es so schnell wie möglich, danke für die Antwort :) – degath

Verwandte Themen