Comments (11)
Hey guys, sorry I've been really slow recently. Going to be working on the changes in master in the next few days and finishing things off and deploying :) sorry for taking so long!
from nestjs-typeorm-paginate.
Hey guys, sorry I've been really slow recently. Going to be working on the changes in master in the next few days and finishing things off and deploying :) sorry for taking so long!
All good. Thanks for creating this package. It saved me a lot of time.
from nestjs-typeorm-paginate.
@kauandotnet can you show me your implementation and the query string please if you can?
from nestjs-typeorm-paginate.
Yep. I'm having the same issue. I'm asking for 10 items per page but only receiving 5. Depending on the page the item count will be different. Sometimes I'll get back 6 items, sometimes 8, etc. Some of my models work perfectly fine.
When I run the query TypeORM generates directly on the database I get 10 items
from nestjs-typeorm-paginate.
Actually, I know why. My issue stems from the fact that I'm joining tables. I'm asking for 10 shipments, but since I'm joining to another table, it's applying the limit to the records in the related table.
from nestjs-typeorm-paginate.
The problem seems to be solved in master, however when installing from npm, you don't get the latest version. I ended up removing the package from my project and copied all the files from master manually.
from nestjs-typeorm-paginate.
@bashleigh , same issue here, when join table in many-to-many itemCount and totalItems does not work well... do you have any position? Thanks.
from nestjs-typeorm-paginate.
Service:
async listAll(options: IPaginationOptions): Promise<Pagination<any>> {
return await paginate(this.repository.findLines(), options);
}
Repository Query:
findLines() {
return this.createQueryBuilder("line")
.leftJoinAndSelect("line.plans", "plans")
.leftJoinAndSelect("plans.carrier", "carrier")
.select(["line.id", "line.number", "line.lineStatus", "line.carrierStatus", "line.reservedBetween", "line.aquisitionDate"])
.addSelect(["plans.id", "plans.name"])
.addSelect(["carrier.id", "carrier.name"]);
}
Line:
@Entity("line")
export class LineEntity extends DefaultEntity {
@Column({ unique: true })
number: string;
@Column({
type: "enum",
enum: LineStatus,
default: LineStatus.ACTIVE
})
lineStatus: LineStatus;
@ManyToMany(type => PlanEntity)
@JoinTable({
name: "plan_line",
joinColumn: {
name: "lineId",
referencedColumnName: "id"
},
inverseJoinColumn: {
name: "planId",
referencedColumnName: "id"
}
})
plans: PlanEntity[];
@Column({
type: "enum",
enum: CarrierStatus,
default: CarrierStatus.ACTIVE
})
carrierStatus: CarrierStatus;
@Column({ type: "date", nullable: true })
reservedBetween: string;
@Column({ type: "date" })
aquisitionDate: string;
}
Plan:
@Entity("plan")
export class PlanEntity extends DefaultEntity {
@Column()
name: string;
@Column({ nullable: true })
description: string;
@ManyToOne(type => ServiceEntity)
service: ServiceEntity;
@ManyToOne(
type => CarrierEntity,
carrier => carrier.plans
)
carrier: CarrierEntity;
@OneToMany(
type => OfferEntity,
offer => offer.plan
)
offers: OfferEntity[];
@Column({ default: 0 })
activationFee: string;
}
from nestjs-typeorm-paginate.
any update on this
from nestjs-typeorm-paginate.
@kauandotnet I think using select or left joins has resulted in your error. I quite often hydrate my results if I need to as that's what typeorm does when using joinTables + eager loading. I know it sounds less desired than left joins but it means the results for the pagination are correct! However I would recommend before doing this, making sure your outputted query results in the correct amount of line. So set TYPEORM_LOGGING=true
in you envs, take the query, run it against your database and check that your query is resulting in the desired outcome. Other than that I don't think this is an issue with the paginate method? Please let me know if your query results in the correct results and the paginate method doesn't :)
from nestjs-typeorm-paginate.
After you've updated, everything is working now...
Thanks for your time @bashleigh
from nestjs-typeorm-paginate.
Related Issues (20)
- Coud not resolve dependencies HOT 1
- NestJS 9 HOT 1
- Paginate and .innerJoinAndMapOne HOT 1
- Trouble with pagination of `QueryBuilder` results with `join` HOT 6
- please fix install package nestjs version ^9.x.x
- compilation nestjs-typeorm-paginate/dist/paginate.d.ts error HOT 1
- How to use paginate function with custom option parameters HOT 1
- [bug] paginate not filter 🐞 HOT 1
- Paginate with queryBuilder counts raw number of rows instead of entity number of rows. HOT 3
- EntityPropertyNotFound cause the server to stop HOT 3
- Issues when trying to start with NestCli, but regular nodemon env works?
- Nest CLI build fails with Typeerror from paginate library? HOT 1
- Enhancement on Search Options
- This package not support NestJS 10
- Need new version update to NPM registry HOT 1
- duplicated item returned when using orderBy('ASCII(name)') with paginate HOT 1
- Cannot mock paginate function HOT 1
- Better Swagger / OpenAPI types
- [doc] wrong comment for countQueries option
- paginate function returns wrong number of items when using queryBuilder HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nestjs-typeorm-paginate.