在存储库中查询限制

时间:2018-09-21 18:08:21

标签: java spring spring-data-jpa spring-data

我想向您寻求帮助。

我有一个Book表,要从中绘制两本最近添加的书(数据库中没有添加日期,我想对idb-书号进行排序)。 我想通过在存储库中正确编写的方法名称来执行此操作(即通过Spring Data) 就是这样 <Book> findAllOrderByIdbDesc(); 我想将结果限制为两个,对此我有问题。 您如何保存这样的查询?

3 个答案:

答案 0 :(得分:0)

List<Book> findTop2ByOrderByIdbDesc()

有关更多有用的信息,请遵循Spring documentation

答案 1 :(得分:0)

在BookRepository界面中,添加:

Page<Book> findAll(Pageable pageable);

要返回按idb降序排列的最后2条(甚至n条)记录,您应该使用:

Pageable pageable = new PageRequest(0, 2, Sort.Direction.DESC, "idb");
Page<Book> books= bookRepository.findAll(pageable)
List<Book> topTwoBookList = books.getContent();

答案 2 :(得分:0)

您可以使用分页来实现您的方案。您的存储库界面必须扩展import numpy as np from flask_sqlalchemy import SQLAlchemy as sa from flask import Flask as fl import pymysql pymysql.install_as_MySQLdb() app = fl(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:the_other_stuff' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] =False DEBUG =True db = sa(app) list=[np.array(np.ones(100)),np.array(np.ones(100)),np.array(np.ones(100)), np.array(np.ones(100)),np.array(np.ones(100))] class Parent(db.Model): id = db.Column('id', db.Integer, primary_key=True) data= db.Column('data', db.VARCHAR(45)) _child = db.relationship('child', backref='parent', lazy=True) def __init__(self, data): self.data = data def __repr__(self): return '<Parent %r>' % self.id class Child(db.Model): id = db.Column('id', db.Integer, primary_key = True) data = db.Column('data', db.VARCHAR(45)) parent_id = db.Column(db.Integer, db.ForeignKey('Parent.id')) parent = db.relationship('Parent') def __init__(self,data): self.data = data def __repr__(self): return '<Child %r>' % self.id def child_loop(i = 0): for a in range(len(list)): with db.session.no_autoflush: try: p = Parent(symbol_col=data[a]) c = child(data = list[a][i]) s.c.append(child) db.session.add(p) db.session.add(c) except exc.IntegrityError as e: db.session.rollback() i = i + 1 if a < len(list[0]): child_loop(i = i) return print('inserted open_close') child_loop(i=0) 才能获得页面支持(PagingAndSortingRepository已经扩展了JpaRepository)。

PagingAndSortingRepository

然后可以按如下所示调用方法。

public interface BookRepository extends JpaRepository<Book, Long> { 

    Page<Book> findBooks(Pageable page);

}

希望这会有所帮助!