ajaynegi45 / LibraryMan-API

Revolutionize book management with LibraryMan! Easily track stock, borrowers, and due dates, streamlining operations for schools, companies, and libraries worldwide, ensuring efficient and organized book lending.
MIT License
44 stars 49 forks source link

[FEATURE] Implement Caching with @Cacheable Annotation in Service Layer for Entities #68

Closed shreya5653 closed 1 month ago

shreya5653 commented 1 month ago

Is this feature already requested?

Problem or Missing Functionality

the service layer for several entities lacks caching mechanisms, which can lead to redundant database queries and decreased system performance. By implementing the @Cacheable annotation in the service layer, we can enhance the application's efficiency by reducing the load on the database and improving response times for frequently accessed data. This change would address performance bottlenecks, particularly in scenarios involving repetitive data retrieval operations.

Feature Description

I suggest adding the @Cacheable annotation to the service layer of various entities to implement caching for frequently accessed data, which will significantly reduce database queries and improve application performance. This enhancement will lead to faster response times for users, increasing overall satisfaction, and will reduce the load on the database, improving scalability and reliability as user traffic increases. Implementing this feature will ultimately create a more efficient application and a better user experience.

Screenshots

No response

Would you like to work on this feature?

Yes

Implementation Plan

To implement the @Cacheable annotation for various entities in the service layer, I will identify the relevant entities, add the necessary caching dependency, configure caching settings, annotate service methods with @Cacheable, and then test and optimize the functionality to improve application performance.

github-actions[bot] commented 1 month ago

👋 Thank you @shreya5653 for raising an issue! We appreciate your effort in helping us improve. Our team will review it shortly. Stay tuned!

ajaynegi45 commented 1 month ago

Is this feature already requested?

  • [x] I have checked "open" and "closed" issues, and this is not a duplicate.

Problem or Missing Functionality

the service layer for several entities lacks caching mechanisms, which can lead to redundant database queries and decreased system performance. By implementing the @Cacheable annotation in the service layer, we can enhance the application's efficiency by reducing the load on the database and improving response times for frequently accessed data. This change would address performance bottlenecks, particularly in scenarios involving repetitive data retrieval operations.

Feature Description

I suggest adding the @Cacheable annotation to the service layer of various entities to implement caching for frequently accessed data, which will significantly reduce database queries and improve application performance. This enhancement will lead to faster response times for users, increasing overall satisfaction, and will reduce the load on the database, improving scalability and reliability as user traffic increases. Implementing this feature will ultimately create a more efficient application and a better user experience.

Screenshots

No response

Would you like to work on this feature?

Yes

Implementation Plan

To implement the @Cacheable annotation for various entities in the service layer, I will identify the relevant entities, add the necessary caching dependency, configure caching settings, annotate service methods with @Cacheable, and then test and optimize the functionality to improve application performance.

Hi @shreya5653,

Thank you for expressing your interest in working on this issue. I'm delighted to inform you that I have assigned this issue to you. Your willingness to contribute to our project is much appreciated.

Before making any contributions, please read the Readme.md file carefully to better understand the project's goals and purpose. This will give you clarity on our mission. Also, make sure to review the Contributing.md file, which contains important guidelines to make the contribution process smoother, especially for newcomers.

Feel free to start working, and if you have any questions or need assistance during the process, please don't hesitate to reach out.

Shalinis19137 commented 1 month ago

I would like to work on this project ,Can you assign me this issue under Gssoc-ext 2024.

shreya5653 commented 1 month ago

@ajaynegi45 Sure! Thank you.

ajaynegi45 commented 1 month ago

I would like to work on this project ,Can you assign me this issue under Gssoc-ext 2024.

Hi @Shalinis19137,

Thank you for expressing your interest in working on this issue. However, this issue is currently being worked on by another contributor, @shreya5653. You can explore other issues in our repository or check out our other projects under the GirlScript Summer of Code and Hacktoberfest. Here are the links to explore: https://bento.me/codiescoder

According to your profile, I suggest you to work on this issue https://github.com/ajaynegi45/Uttarakhand-Culture-NewUI/issues/19

Feel free to reach out if you have any questions or need guidance on where to start. We're excited to have your contributions!

Shalinis19137 commented 1 month ago

Thanks alot sir.

shreya5653 commented 1 month ago

@ajaynegi45 I have a doubt. As per my understanding, members is a separate table in the database. But in the entity class of members, it is not annotated as a Table. If I am correct can I raise a new issue for that ? Screenshot (92)

ajaynegi45 commented 1 month ago

@ajaynegi45 I have a doubt. As per my understanding, members is a separate table in the database. But in the entity class of members, it is not annotated as a Table. If I am correct can I raise a new issue for that ? Screenshot (92)

Hi @shreya5653,

Thank you for raising your doubt. You're correct that the Members class is an entity, and the @Entity annotation specifies that it maps to a table in the database. While the @Table annotation is optional, it can be explicitly added to specify the table name or other configurations. In this case, the @Entity annotation is sufficient as it tells JPA to map this class to a table, and by default, it will use the class name (Members) as the table name unless specified otherwise.

shreya5653 commented 1 month ago

@ajaynegi45 I have a doubt. As per my understanding, members is a separate table in the database. But in the entity class of members, it is not annotated as a Table. If I am correct can I raise a new issue for that ? Screenshot (92)

Hi @shreya5653,

Thank you for raising your doubt. You're correct that the Members class is an entity, and the @Entity annotation specifies that it maps to a table in the database. While the @Table annotation is optional, it can be explicitly added to specify the table name or other configurations. In this case, the @Entity annotation is sufficient as it tells JPA to map this class to a table, and by default, it will use the class name (Members) as the table name unless specified otherwise.

okay. Thanks for clearing my doubt

shreya5653 commented 1 month ago

@ajaynegi45 I started working on the project and have already raised a PR. Can you please assign the issue to me

shreya5653 commented 1 month ago

@Guhapriya01 Please assign this to me and give labels to PR.