Spring Data JPA Relationships - ManyToMany, ManyToOne & OneToMany

Поділитися
Вставка
  • Опубліковано 30 січ 2025

КОМЕНТАРІ •

  • @BoualiAli
    @BoualiAli  Рік тому +2

    Join the Micro Services course waiting list and get and get an exclusive *EARLY-BIRD discount*
    aliboucoding.ck.page/d0f9317e13

  • @DiplomasizKodcu
    @DiplomasizKodcu Рік тому +22

    How did I not seeing your videos before? Did you know your the only one who explained entire stuff? I will watch your entire list and share your account for those who need. Thanks a lot for great content.

    • @BoualiAli
      @BoualiAli  9 місяців тому +2

      Glad you liked it!

  • @santhosha-z5x
    @santhosha-z5x 2 місяці тому +1

    thank you so much you saved my interview time by minimizing all extra's i recommend this videos to others who didn't understand relationships properly.

  • @landry_john
    @landry_john Рік тому +6

    Thank you for that great lesson about Spring Data JPA Relationships.

  • @ines_edim
    @ines_edim Рік тому +5

    1. You have good well drawn out diagrams and visualizations, it's very helpful
    2. Your explanations shows that you have solid fundamentals [Coding + SQL]
    3. You gave Practical and Relatable examples.
    4. Kudos to you. I am coming from a C++ background, and I appreciate the attention to details in this video. I'll be sure to watch the playlist.
    You've got 1 new subscriber here.

    • @BoualiAli
      @BoualiAli  Рік тому

      Great and detailed feedback.
      Happy you liked it!

  • @hazel-BKJ
    @hazel-BKJ 10 місяців тому

    Your video is beyond reproach, from theoretical concepts to practical application. Thank you very much for the content, Mr Ali, which is full of pedagogy and enables me to make progress as a beginner with the spring boot framework.

    • @BoualiAli
      @BoualiAli  9 місяців тому

      You are most welcome

  • @natanduarte5273
    @natanduarte5273 5 місяців тому

    UR AN LEGEND i sspent more than 4 hors trying to get this right, and the u showed up THX

  • @GuilhermeMirandaZelinschideArr
    @GuilhermeMirandaZelinschideArr 10 місяців тому +1

    the only video that made me understand the concept great work

    • @BoualiAli
      @BoualiAli  9 місяців тому

      glad to hear that!

  • @taiwoobadare
    @taiwoobadare Рік тому +4

    Very very good explanation, well simplified, great job!

  • @shenanvindinu
    @shenanvindinu 3 місяці тому +1

    Much love ❤❤

  • @ShermukhammadKarimov
    @ShermukhammadKarimov 6 місяців тому +1

    thanks for this amazing tutorial

  • @khaledoueslati66
    @khaledoueslati66 9 місяців тому

    Very Nice video keep the great work up 🙌🙌

    • @BoualiAli
      @BoualiAli  9 місяців тому

      Thank you so much 😁

  • @mohamedhediaissi598
    @mohamedhediaissi598 7 місяців тому

    Thank you so much for this video !! It really helped me a lot !!

  • @markotomic4368
    @markotomic4368 8 місяців тому

    Thank you Ali for this wonderfull explanation!

    • @BoualiAli
      @BoualiAli  8 місяців тому

      You are very welcome

  • @trinhlong2665
    @trinhlong2665 Рік тому +1

    Thank you Bouali Ali. Would be glad if you can complete this project by creating some Rest Controller class. I hope to see you have more videos about this course.

    • @BoualiAli
      @BoualiAli  Рік тому +3

      I already have videos about that. Check the playlist Spring workshops

    • @abhinavjain8613
      @abhinavjain8613 Рік тому

      Please add link

  • @RotorVideos01
    @RotorVideos01 5 днів тому

    Question. You were doing @ManyToOne and @OneToMany relation bidirectional relation . Why was there no foreign key in the department table?

  • @okeowoaderemi
    @okeowoaderemi Рік тому +1

    Amazing Tutorial I just joined your discord

    • @BoualiAli
      @BoualiAli  9 місяців тому

      Awesome thank you!

  • @wantedlepota9960
    @wantedlepota9960 6 місяців тому

    I would have loved to see how you test this, how would the JSON input would look like representing those entity relationships

  • @messironaldo1708
    @messironaldo1708 2 роки тому +1

    That was soo helpful. Thank you!

  • @sphesihlemanuel2933
    @sphesihlemanuel2933 Рік тому

    Great video, this was very helpful

  • @AntonioCabralNumberOne
    @AntonioCabralNumberOne 10 місяців тому

    Thank you once again for your dedication with your beautifully explained videos!
    I have one question about ManyToMany relationships:
    If you need an extra column in the relationship table between (in your case) the Employee and the Mission tables, let's say e.g. a "created_at" column, how would you add it, set it and get it?
    Thank you in advance!

    • @RandomSrr751
      @RandomSrr751 9 місяців тому

      Hi there! So, I'm about a month late, and I'm also just getting started with coding, but I solved this situation last week.
      In ManyToMany relationships, the intermediate table is generated automatically, which means you can't easily add more attributes without modifying the relationship itself.
      The only way I found to resolve this involves actually not using ManyToMany but setting up two OneToMany relationships between employees/missions on the "One" side, linking them to a third entity that contains both IDs along with any extra attributes. Using an example, this would be represented by the EmployeeMission class, which includes employeeId, missionId, and createdAt attributes.
      As Ali shows here, for OneToMany relationships, it's important to specify the "mappedBy" annotation, and I also found it helpful to specify the fetch type.
      I hope my explanation is clear and helpful. Have a great day!

  • @genusleemapedze1177
    @genusleemapedze1177 2 роки тому +5

    Would be glad if you can create maybe a single end to end application with spring security included in the app and also learning more about the DTOs
    e.g a blog app with several roless

    • @BoualiAli
      @BoualiAli  2 роки тому +2

      I will consider this idea.

    • @solowolf5304
      @solowolf5304 Рік тому

      @@BoualiAli yes plz do consider this

    • @inihood
      @inihood Рік тому

      @@BoualiAli Please do it

    • @BoualiAli
      @BoualiAli  Рік тому +1

      @@inihood i already published a spring security video

  • @elliotsaii7904
    @elliotsaii7904 2 роки тому

    that's was awesome video

  • @satyamsc
    @satyamsc 2 роки тому

    Nice.. Easy to understand. !!!.

    • @BoualiAli
      @BoualiAli  2 роки тому

      Happy to know your feedback 😁

  • @sithumsathsara7966
    @sithumsathsara7966 4 місяці тому +1

    Good😀

  • @parmodprajapati
    @parmodprajapati 2 місяці тому +1

    Hi Great,
    Could you please make videos on Spring Security like this one.?

    • @BoualiAli
      @BoualiAli  2 місяці тому +1

      Already did. Check the videos

  • @solowolf5304
    @solowolf5304 Рік тому

    New viewer here. I hope 10K subscribers would be a good motivation for you to bring more good content like this !!

  • @mohamedoueslati462
    @mohamedoueslati462 Рік тому

    Good job , Thanks Ali :)

  • @angsh
    @angsh Рік тому +1

    Gold!

  • @kishorem5101
    @kishorem5101 3 місяці тому +1

    Why I got sleepy when I'm heard your voice 💤😴😴

  • @supun_sandaruwan
    @supun_sandaruwan Рік тому

    awesome video 🔥 Thank you

  • @mamadoumorobah1777
    @mamadoumorobah1777 2 роки тому

    Merci beaucoup pour le partage de savoir

    • @BoualiAli
      @BoualiAli  2 роки тому

      My pleasure
      Don’t forget to share the video 😄

  • @MFM88832
    @MFM88832 9 місяців тому

    Good video but it would be more informative if you showed Crow's foot notation in your visaulisation diagram.

  • @AshishRohillax
    @AshishRohillax Рік тому

    Thanks a lot, really helpful

  • @mohamedwiem4965
    @mohamedwiem4965 Рік тому +1

    Amazing content as well, just I wanna ask if the integration of database and diagrams you use exists in STS or intellij community edition or just in intellij ultimate !

    • @BoualiAli
      @BoualiAli  Рік тому +1

      Happy you liked it.
      Not sure about sts, but for Intellij it is just ultimate version

  • @marouenghozzi4778
    @marouenghozzi4778 6 місяців тому

    How can we decide who’s the owner of the relationship between two entities ?

  • @emonadriane5525
    @emonadriane5525 Рік тому

    Thanks really @Bouli ..can you please make a video/tutorial on making an e-commerce API including uploading product image plus attaching the different prices. Or maybe a destinations API

    • @BoualiAli
      @BoualiAli  Рік тому +1

      I really would like to, bit this gonna take so much time. I hope I can do it one day

    • @emonadriane5525
      @emonadriane5525 Рік тому

      ​@@BoualiAli Really thanks. Stay blessed!

  • @samirbenaziz520
    @samirbenaziz520 8 місяців тому

    salem khouya ya3tik sa7a 3al vidéo
    juste question : OneToMany wel ManyToOne dima relation binéthom unidirectionnelle ???

  • @parmodprajapati
    @parmodprajapati 9 місяців тому

    Hi,
    When we go for Unidirectional mapping and which is best according to requirement?
    We can also set the employee id to the address table so why should we address id set to the employee table.

    • @BoualiAli
      @BoualiAli  9 місяців тому

      It depends on the logic and needs for your application

  • @amenimensi8817
    @amenimensi8817 9 місяців тому

    good job

  • @mursalin3698
    @mursalin3698 2 роки тому

    well done

  • @fernandoereno5597
    @fernandoereno5597 2 роки тому

    Thank you!!!

  • @apexyu164
    @apexyu164 8 місяців тому

    in all this relationship, which one will auto ipdate the table if one insert happen

  • @zqgAFf
    @zqgAFf Рік тому

    Thank you so much for such a nice clean video , However I made the simlar entities with one to one bidirectional , when I check the database , it does have each other id as foriein key ,however my app won't start again , but if add something like mapped by employee and add cascade = cascadeType.All , then there won't be two foreign key , there is only one address_id ,but the other foreign key won't appear from the other table ....I am confused

    • @BoualiAli
      @BoualiAli  Рік тому

      Why your app is not starting after adding one to one?
      Can you provide some logs in the discord server (screenshots) to make easier to understand

    • @zqgAFf
      @zqgAFf Рік тому

      @@BoualiAli
      Yeah I noticed on one to one bidirectional it is better not to provide mapped by on one entity otherwise,otherwise there’s only one foreign key like unidirectional

  • @chokribenrejeb8115
    @chokribenrejeb8115 2 роки тому

    Thank you,. how we can achieve ManyToMany relationship whene the join Table should have some data.

    • @BoualiAli
      @BoualiAli  2 роки тому +1

      You need to create an extra entity that will hold the relation and the extra fields as well

    • @kamilleskamilless8113
      @kamilleskamilless8113 2 роки тому

      @@BoualiAli could you please create video about that?

    • @BoualiAli
      @BoualiAli  2 роки тому

      @@kamilleskamilless8113 about what exaclty?

  • @Ramziddin_Rustamov
    @Ramziddin_Rustamov 3 місяці тому +1

    27:15 visualization:) never mind

  • @mugenzideodate5733
    @mugenzideodate5733 Рік тому

    Can you help us, full project by using spring boot multipe tables like 3 tables from database
    on back end and fetch data to front-end in single table?

  • @mohamedwiem4965
    @mohamedwiem4965 Рік тому

    thank u ! employee_mission was automatically generated in our database , should we create employee_mission class in our entity package or is not necessary ?

    • @BoualiAli
      @BoualiAli  Рік тому +1

      if you don't have any extra fields, you don't need to

  • @plowman5260
    @plowman5260 10 місяців тому

    Thank you for your help

  • @kushagraahire1871
    @kushagraahire1871 6 місяців тому

    thanks

  • @adelteyeb2427
    @adelteyeb2427 Рік тому

    Thinks can you make a video about MVC architecture

  • @orestdymarchuk2910
    @orestdymarchuk2910 Рік тому

    When you create an Entity, you created an Integer field with the "id" annotation.
    Can you please clarify why this field should be an Object type and not a primitive one?

    • @BoualiAli
      @BoualiAli  Рік тому +3

      Object by default is null
      Premitive like int by default 0
      You null on the id to help hibernate well manage the entities.
      Checkout my new course about spring data jpa and you will understand all this details and master this topic
      aliboucoding.com/courses

    • @sureshattimarad1796
      @sureshattimarad1796 Рік тому +1

      Bacause we use ArrayList type field to hold MANY objects,
      Since ArrayList implements List interface that SUPPORTS only OBJECT TYPE not the primitive type

  • @kevinameda2711
    @kevinameda2711 2 роки тому

    Hi @Bouli for the great tutorials. Could you please make a video about spring security with oauth will appreciate thank you in advance

    • @BoualiAli
      @BoualiAli  2 роки тому

      Already have one about spring security. Check it in the same playlist

    • @kevinameda2711
      @kevinameda2711 2 роки тому

      @@BoualiAli I did and it is an absolute honour to even talk to you. Where can I reach u out to talk further?

    • @BoualiAli
      @BoualiAli  2 роки тому

      @@kevinameda2711 the honor is mine
      You can reach me on our discord server

  • @ernanibatista1806
    @ernanibatista1806 11 місяців тому

    Tks but when we insert in the table employee , adress_id retuning null

  • @wassimsakri8654
    @wassimsakri8654 Рік тому

    thank you

  • @nourhenjridi7963
    @nourhenjridi7963 11 місяців тому

    SVP comment vous affichez le diagramme de classe représentant les entités dans votre projet Spring Boot avec une base de données ?

  • @apexyu164
    @apexyu164 8 місяців тому

    How to add database to spring in right panel?

  • @fumano2679
    @fumano2679 Рік тому

    I have a problem when inserting an entry with the many-to-one relationship. Lets say i have created a department with the id of 1 in my database and now want to create a employee. I a few cases to do this. 1. By placing the department_id = 1 int the json, 2. by placing the department = 1 in the json, 3. by placing the department equal to the department json from my db entry, 4. by getting the department object from an api call and then employee.setDepartment(department). None worked. Is it not possible to create an Employee by referencing the department id?

    • @BoualiAli
      @BoualiAli  Рік тому

      when creating an employee you need to set the department object and pass the department is
      Here is an example
      Department dep = new Department()
      dep.setId(departmentId) // the one you get in your request / object / param (depends how you get it)
      Employee emp = new Employee()
      emp.setField()
      emp.set....()
      emp.setDepartment(dep)
      repository.save(emp)

  • @osasereuhunmwangho5293
    @osasereuhunmwangho5293 Рік тому

    Thank you Bouali Ali. This is very concise and really gainful for me. For the one-to-one relationship, in what context is the relationship uni-directional or bi-directional?. Thank You

    • @BoualiAli
      @BoualiAli  Рік тому +1

      Unidirectional Relationship: This means that one entity has knowledge of the other, but not vice versa. In other words, if you have two entities, say EntityA and EntityB, and if EntityA has a reference to EntityB (but EntityB does not have a reference to EntityA), then it's a unidirectional relationship.
      Unidirectional relationships are simpler and less complex, and are suitable when there is no need for the referenced entity (EntityB in our example) to know about the entity that is referencing it (EntityA). For instance, if you have a User entity and a Profile entity, and each User has one Profile, but a Profile does not need to know which User it belongs to, you can model this as a unidirectional relationship from User to Profile.
      Bidirectional Relationship: This is when both entities are aware of each other - EntityA has a reference to EntityB, and EntityB also has a reference to EntityA. This kind of relationship is a bit more complex due to the need to keep both sides of the relationship in sync.
      Bidirectional relationships can be useful when there is a need for both entities to be aware of each other. For example, if you have a Customer entity and a BankAccount entity, and each Customer has one BankAccount, but a BankAccount also needs to know which Customer it belongs to, then you would model this as a bidirectional relationship.

  • @Supremevillacom-house
    @Supremevillacom-house 5 місяців тому +1

    🎉🎉 thanks 👍👍😊

  • @dorrakadri1474
    @dorrakadri1474 2 роки тому

    can u explain the cascade types

    • @BoualiAli
      @BoualiAli  2 роки тому

      Will note that for the next video

  • @thanhninh8677
    @thanhninh8677 Рік тому

    Can you give me the link of the next video , i can't find it

    • @BoualiAli
      @BoualiAli  Рік тому

      Spring Data JPA | Hibernate
      ua-cam.com/play/PL41m5U3u3wwkS8BU0fIeRQwY3hK4VlFlX.html

  • @amineessaoud1493
    @amineessaoud1493 9 місяців тому

    Does OneToMany & OneToMany exist in Spring Boot ?

  • @Sumeshkumarback
    @Sumeshkumarback 7 місяців тому

    Perform CRUD operation in above relationship

  • @haobui8913
    @haobui8913 8 місяців тому

    Can anyone tell me what is the function of MappedBy????

  • @bagzhansadvakassov1093
    @bagzhansadvakassov1093 5 місяців тому

    You haven't left the source code?

  • @jopadjr
    @jopadjr 2 роки тому

    46th...Thanks

  • @arslanoulhaci9965
    @arslanoulhaci9965 9 місяців тому +1

    VIZU ALI ZATION visualization

  • @Razes9ooo474lO4
    @Razes9ooo474lO4 8 місяців тому

    employee and department uni directional or bi-directional , department table doesnt have any fk of employee

  • @swapnilmuneshwar7813
    @swapnilmuneshwar7813 10 днів тому

    Fix the voice please!!!

  • @aboubacardiaby3700
    @aboubacardiaby3700 Рік тому +1

    Salut Mr Bouali j'ai une question pertinante pour vous.
    le faite de créer une liste lorsqu'on a une annotation @OneToMany dans une classe permet de faire quoi concrètement

  • @moriahnjsahkhar8764
    @moriahnjsahkhar8764 6 місяців тому

    How do i handle circular reference error in onetomany and manytoone.. ive tried @jsonmanaged and @jsonbackreference .. it kinda works but not fully.. i still get the stackoverflow error in the frontend which is thymleaf and also when i use toString method

  • @stevegatspaul
    @stevegatspaul 2 роки тому

    Hey,
    Amazing content as always, but I have a question about how to use this in "@Repository public interface EmployeeDao extends JpaRepository", for example :
    findByEmployeeId and get: Employee Info and his address and his Mission and his Department.

    • @BoualiAli
      @BoualiAli  2 роки тому +1

      Hi, can explain your question? I didn’t understand

    • @stevegatspaul
      @stevegatspaul 2 роки тому

      @@BoualiAli how to use join query in spring data jpa, use Employee_Id and get: Employee Info and his address and his Mission and his Department. thank you in advance for your reply. 😀

  • @imedhr1814
    @imedhr1814 2 роки тому

    thanks but you did not explain the difference between unidirectional and bidirectional in @OneToMany @ManyToOne !!

    • @BoualiAli
      @BoualiAli  2 роки тому

      It was already explained in the beginning of the video

  • @KlanBr1
    @KlanBr1 Рік тому

    i am doing this tutorial with pgAdmin 4, and the relation ONETOONE, it's looks like ONETOMANY on my DER

    • @BoualiAli
      @BoualiAli  Рік тому

      How is that possible?
      Can you share some screeshots and code snippets on the discord server?

  • @miloudseo7883
    @miloudseo7883 2 роки тому

    Je crois au niveau entity employee tu doid crée comme ceci:@ManyToOne(mapping="employee")
    Private collection departmant;

    • @BoualiAli
      @BoualiAli  2 роки тому

      Pourquoi?

    • @miloudseo7883
      @miloudseo7883 2 роки тому

      @@BoualiAli suivant la cardinalite que vous mentionné dans votre diagramme de class.

    • @BoualiAli
      @BoualiAli  2 роки тому

      @@miloudseo7883 peux tu expliquer plus?

    • @miloudseo7883
      @miloudseo7883 2 роки тому

      @@BoualiAli clé étranger de la table employee doit etre dans la table départemant car un employee appartient à plusieurs départemant, et chaque départemant ayant une seul employee(ma raisonnement suivant la cardinalité que vous avez mentionné, en uml en raisonne comme ca)

    • @miloudseo7883
      @miloudseo7883 2 роки тому

      @@BoualiAli je crois tu dois changer la cardinalité entre table employee(*) et departemant(*) to ManyToMany