我想向您寻求帮助。
我有一个Book
表,要从中绘制两本最近添加的书(数据库中没有添加日期,我想对idb
-书号进行排序)。
我想通过在存储库中正确编写的方法名称来执行此操作(即通过Spring Data
)
就是这样
<Book> findAllOrderByIdbDesc();
我想将结果限制为两个,对此我有问题。
您如何保存这样的查询?
答案 0 :(得分:0)
答案 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);
}
希望这会有所帮助!