Git Product home page Git Product logo

Comments (11)

bashleigh avatar bashleigh commented on June 15, 2024 3

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.

ctilley83 avatar ctilley83 commented on June 15, 2024 1

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.

bashleigh avatar bashleigh commented on June 15, 2024 1

@kauandotnet can you show me your implementation and the query string please if you can?

from nestjs-typeorm-paginate.

ctilley83 avatar ctilley83 commented on June 15, 2024

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.

ctilley83 avatar ctilley83 commented on June 15, 2024

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.

image

from nestjs-typeorm-paginate.

ctilley83 avatar ctilley83 commented on June 15, 2024

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.

kauandotnet avatar kauandotnet commented on June 15, 2024

@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.

kauandotnet avatar kauandotnet commented on June 15, 2024

@bashleigh

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.

tranty9597 avatar tranty9597 commented on June 15, 2024

any update on this

from nestjs-typeorm-paginate.

bashleigh avatar bashleigh commented on June 15, 2024

@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.

kauandotnet avatar kauandotnet commented on June 15, 2024

After you've updated, everything is working now...
Thanks for your time @bashleigh

from nestjs-typeorm-paginate.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.