2016-09-27 5 views
1

Ich benutze mybatis zum Abrufen von Daten aus der DB. Aber ich würde das umwandelbare Objekt (aus dem Frühjahr) verwenden, um die Paginierungsfunktionalitäten zu haben. Ist das möglich? Es ist immer noch genug, myMapper mit einem PaginationAndSortRepository zu erweitern?Wie benutze ich PagingAndSorting mit MyBatis?

Beispiel:

@Mapper 
public interface MyObjetcMapper extends PagingAndSortingRepository { 
    List<MyObjetc> findAllMyObjetcs(Pageable pageable); 
} 

und dann habe ich es von meinem Dienst verwenden:

List<MyObjetc> myObjetc= myObjetcMapper.findAllCharacteristics(pageable); 
return new PageImpl<>(characteristics, new PageRequest(pageable.getPageNumber(), pageable.getPageSize(), pageable.getSort()), MyObjetc.size()); 

Das Problem ist, dass so werde ich alle MyObjects zurückkehren und nicht nur den angeforderten Satz .... Ich muss jedes Mal die interessierte Liste extrahieren?

Antwort

1

Ich suchte das gleiche vor einigen Wochen und scheint, dass dies nicht möglich ist. Für das, was ich gefunden habe, um Ihren eigenen paginator mit RowBound Parameter

zu implementieren

(Der RowBounds Parameter bewirkt Mybatis die Anzahl der Datensätze angegeben, sowie begrenzen die Anzahl der Ergebnisse zu einem gewissen Zahl zurück zu überspringen)

wie in dieser Antwort erklärte , dass ich bin sicher, dass Sie How to do Pagination with mybatis?

Erweiterung Ihrer Mapper mit PaginationAndSorting bereits rot haben wird den Job nicht tun.

This project on github scheint tun, was Sie suchen, aber ich habe es nicht versuchen und es hat keine Kommentare, so dass ich nicht weiß, ob es zuverlässig ist und als Lösung verwendet werden kann.

+0

Txs sehr viel. Ich hoffte auf die Lösung. aber es ist ok. Ich werde es lösen mit manuell meinen Mapper zu erweitern. – java4fun

+1

Ich hoffte auch in der Lösung. Mal sehen, ob jemand mit einer besseren Option findet. – amicoderozer

0

Ich habe mit Mybatis-PageHelper Plugin die Paginierung gegen SQL Server

Datenbanken unterstützt zu tun:

  • Oracle
  • Mysql/MariaDB
  • SQLite
  • HSQLDB
  • PostgreSQL
  • DB2
  • SqlServer (2005 bis 2016)
  • Informix
  • H2

Erklärung in Maven

<dependency> 
    <groupId>com.github.pagehelper</groupId> 
    <artifactId>pagehelper</artifactId> 
    <version>4.1.6</version> 
</dependency> 

Geben Sie es als Plugin in Mybatis-config.xml

<plugins> 
    <plugin interceptor="com.github.pagehelper.PageHelper"> 
    </plugin> 
</plugins> 

Anwendungsbeispiel:

// Get the results for page 1 where every page has 10 rows 
PageHelper.startPage(1, 10); 

List<MyObjetc> myObjetc= myObjetcMapper.findAllCharacteristics(); 

assertEquals(10, list.size()); 
+0

Txs.Ich habe keine mybatis-config.xml. Wie kann ich das konfigurieren? Ich habe nur einen Eintrag in meinen Anwendungseigenschaften: mybatis.mapperLocations = Klassenpfad *: **/mybatis/mappers/*. Xml wo Punkte auf das Paket, die die Mapper haben. – java4fun