Giải ngố ORM và JPA và Hibernate | ORM, JPA, Hibernate là gì

Поделиться
HTML-код
  • Опубликовано: 1 янв 2025

Комментарии • 63

  • @nammm25
    @nammm25 Год назад +1

    trời đất, cảm ơn anh, em đang học môn lập trình Java mà lúng túng đủ thứ

  • @aitphung9476
    @aitphung9476 4 года назад +3

    Hay và kĩ cho những ng mới bắt đầu. Nó k chỉ giúp anh có thể phát triển kênh và giúp a ôn lại kiến thức. Mà nó còn giúp cho những ng đang muốn tìm hiểu thật kĩ và hiểu rõ bản chất. Cảm ơn a thật nhiều nhé..@@@

  • @Jamezxje
    @Jamezxje Год назад

    Cảm ơn anh, video rất hay và bổ ích ạ

  • @hoangucphuong3711
    @hoangucphuong3711 2 года назад +1

    quá hay và dễ hiểu cảm ơn anh rất nhiều

  • @youngdeveloper7871
    @youngdeveloper7871  4 года назад +8

    Trong video mình có kéo Spring Data JPA (thuộc dòng Spring Data) là một implementation của JPA làm mình khá lăn tăn vì ko hẳn như vậy.
    Không đúng và cũng là đúng. Vì sao?
    Hibernate là một trong các framework thực hiện đặc tả JPA.
    Với Spring Data JPA, những thằng như vậy gọi là những nhà cung cấp (Providers hoặc Vendors)
    Spring Data JPA có có thể dùng những thằng cung cấp để triển khai JPA nhé.
    Còn cụ thể thế nào các bạn xem video của mình về Spring Data JPA sau nhé

  • @HungTruong-mv5oy
    @HungTruong-mv5oy 3 года назад +1

    Perfect =))))) cảm ơn anh nhiều, đây có thể coi là đi từ thiện kiến thức =)))

    • @youngdeveloper7871
      @youngdeveloper7871  3 года назад

      Cảm ơn em, kiến thức ai cũng tìm được đâu đó thôi em nên nói quá ơi em ❤

  • @ucmanhly8404
    @ucmanhly8404 3 года назад +1

    video hay 1 thì comments hay 10. cảm ơn anh. mong anh ra nhiều video mới

    • @youngdeveloper7871
      @youngdeveloper7871  3 года назад +1

      Cảm ơn em có lời khen, anh sẽ làm trong thời gian tới

  • @AndrewCoding
    @AndrewCoding 3 года назад +1

    Hay quá anh. Xem xong em cảm giác vén mây mù thấy mặt trời

    • @youngdeveloper7871
      @youngdeveloper7871  3 года назад

      Có phải nói vậy là quá không em :D

    • @AndrewCoding
      @AndrewCoding 3 года назад +1

      @@youngdeveloper7871 Tại em đọc bài khác thấy không hiểu mà xem video của anh thì em hiểu ra đấy anh :D

  • @r4pt0r20
    @r4pt0r20 4 года назад +1

    Cảm ơn anh nhiều ạ, những giải thích này rất bổ ích cho newbei như e

  • @duongtrong2690
    @duongtrong2690 3 года назад +1

    video hay và bổ ích ạ . Nghe giọng giống a HUY dạy ở FA quá

  • @NamKnifeCfVn
    @NamKnifeCfVn 3 года назад +1

    Video rất hữu ích, cảm ơn anh nhiều ạ

  • @kaiidev99
    @kaiidev99 4 года назад +3

    Hay lắm anh ạ. Hi vọng anh làm video giải ngố Spring Security ạ, em đang đau đầu về cái này

    • @youngdeveloper7871
      @youngdeveloper7871  4 года назад

      Anh cảm ơn em nhiều lắm. Anh sẽ làm nhiều video hơn cho các em xem

  • @xuaniennguyen6573
    @xuaniennguyen6573 4 года назад +1

    Cám ơn anh nhiều ạ.Mong anh ra thêm nhiều video về Java web ạ.

    • @youngdeveloper7871
      @youngdeveloper7871  4 года назад +1

      Hi hi.anh dạo này hơi mất tăm. Chờ anh chút nhé. Anh hơi bận dự án mới

    • @xuaniennguyen6573
      @xuaniennguyen6573 4 года назад +1

      @@youngdeveloper7871 Tuy video của a ít lượt xem nhưng đối với người tự học và mới tiếp cận với Java web thì là 1 cái gì đó rất hữu ích ạ.Tks a nhiều !

  • @phamquanghuy6497
    @phamquanghuy6497 3 года назад +1

    video hay quá anh, cảm ơn anh rất nhiều ạ

    • @youngdeveloper7871
      @youngdeveloper7871  3 года назад +1

      Anh cảm ơn em

    • @phamquanghuy6497
      @phamquanghuy6497 3 года назад +1

      @@youngdeveloper7871 mong anh làm video về crud hibernate ạ

    • @youngdeveloper7871
      @youngdeveloper7871  3 года назад +1

      Ok em 👌. Công việc tấp nập quá nên anh xin lỗi mọi người. Anh sẽ thu xếp sớm

  • @thaonguyenvan9747
    @thaonguyenvan9747 3 года назад +1

    Hay quá anh

  • @theartofcoding3058
    @theartofcoding3058 2 года назад

    Cảm ơn anh nhiều, video rất dễ hiểu =))

  • @NguyenVanTuanPH-em1do
    @NguyenVanTuanPH-em1do 2 года назад

    RUclips nó tự đề xuất kênh của thầy cho em luôn ạ. Em khóa 16.3 fpoly ạ, kỳ này đang học java 5 ạ

  • @hplat-vku
    @hplat-vku 9 месяцев назад

    dễ hiểu quá ạ

  • @angthanhbinh6203
    @angthanhbinh6203 4 года назад +1

    Hay anh ạ. Em đang xem cái jpa mà làm chưa rõ lắm. nó ngắn gọn hơn hibernate mà chưa rõ về nó

  • @tamdhpyc177
    @tamdhpyc177 4 года назад +1

    Hay a

  • @tuvo3142
    @tuvo3142 3 года назад

    hay quá bạn ơi

  • @thuandau.rutvitrasau
    @thuandau.rutvitrasau 3 года назад +1

    Perfect

  • @nvtentertainment4098
    @nvtentertainment4098 Год назад

    Nâng cấp cuối cùng chúng ta có Spring boot + JPA

  • @quanlam1437
    @quanlam1437 8 месяцев назад

    dạ như vậy là trong 1 dự án spring mình sẽ sử dụng spring jpa hoặc hibernate hay mình e sử dụng cả 2 ạ

  • @bongbinh2k3
    @bongbinh2k3 9 месяцев назад

    Cho em hỏi Hibernate có liên quan gì đến Liquibase/Fly way ko anh , khi tạo CSDL trên Liquibase/Flyway thì nó có lợi ích gì so với tạo CSDL ngay trên các Hệ quản trị csdl thường ?

    • @youngdeveloper7871
      @youngdeveloper7871  9 месяцев назад

      Liquibase chỉ giúp mình quản lý phiên bản của DB, lắng nghe thay đổi của DB.
      Còn Hibernate nó là Orm framework tương tác DB với Java Object.
      Hai thằng này ko hề liên quan với nhau nên ko so sánh em nhé.
      em dùng cả 2 trên cùng 1 dự án ok nha

  • @tennynguyen2401
    @tennynguyen2401 4 года назад +2

    anh giải thích dùm mấy cái trong cascade được không? ví dụ như persist, merge, detach...

    • @youngdeveloper7871
      @youngdeveloper7871  4 года назад

      Hi bạn, hiện tại mình khá bận và youtube không phải là ưu tiện hiện tại nhưng mình sẽ quay lại.Còn việc các thành phần bạn nêu chắc bạn đã dùng rồi. Nếu chưa nắm được hết mình có thể support bạn qua link này. openjpa.apache.org/builds/1.2.3/apache-openjpa/docs/jpa_overview_em_lifecycle.html
      Cảm ơn bạn rất nhiều. Mình sẽ làm video trả lời bạn trong thời gian sớm nhất

  • @nvtentertainment4098
    @nvtentertainment4098 Год назад +1

    Đúng cai em cần

  • @dkhiemng7806
    @dkhiemng7806 3 года назад +1

    Cho e hỏi a ơi. V là Spring data JPA và hibernate điều triển khai của JPA. Nhưng khác nhau là HIBERNATE truy vấn bằng HQL và quản lí Transaction , Còn SPRING JPA DATA sử dụng nhưng hàm build có sẵn đễ lấy dữ liệu đúng k ạ?. Nếu k đúng a cho e hỏi khác nhau giữa 2 thằng đó?. E cám ơn. Mong a đọc được

    • @youngdeveloper7871
      @youngdeveloper7871  3 года назад +2

      Trong JPA có 1 thằng là EntitiyManagers để xử lý dữ liệu như là find, save,...Hibernate thực hiện JPA nó tạo ra Session hoạt đông như entityManager. Dùng hibernate có thể dùng session hoặc entitymanager để sử dụng cho mục đích như nhau được. Còn Spring JPA mạnh ở khả năng tích hợp. Nó linh động vendor dùng. Em thích Hibernate, Eclipse Link,..cái nào cũng được, nó sẽ dùng cái entity manager mà vendor tạo ra dể dùng. Chứ không dùng lại các hàm có sẵn của Hibernate đâu em. Thêm thông tin là làm sao nó biết vendor nào, thì là do nó thiết kế proxy nó đọc cấu hình để biết vendor sẽ được dùng để tạo entitymanager

  • @philong7490
    @philong7490 4 года назад +1

    Em cảm ơn anh vì video ạ! Em muốn hỏi là giữa spring jpa và hibernate thì hiện tại cái nào phổ biến và được dùng nhiều hơn trong dự án ạ?

    • @youngdeveloper7871
      @youngdeveloper7871  4 года назад +5

      Nếu so sánh 2 thằng này về cách hoạt động thì không đúng.
      Còn so sánh việc sử dụng viết mã
      Spring JPA nó sẽ giúp em giảm thiểu việc viết mã.
      Thường em chỉ khai báo Interface là Repository, và em goi Repository là xong.
      Hibernate khai báo Interface, và thực hiện Implementation (Tạo session, transaction,... commit, close) các kiểu nên sẽ tốn thời gian viết code.
      Ngoài ra Repository có nhiều hàm sẵn cho em dùng rất dễ dàng hơn so Hibernate nhiều.
      => Nên em tìm được câu trả lời rồi nhé

  • @nguyentoan9012
    @nguyentoan9012 3 года назад +1

    Em chào anh, em có một thắc mắc như sau mong anh giải đáp ạ.
    Trong framework Spring Data Jpa, có một interface hay được dùng là JpaRepository, nó có các phương thức như findById, findAll,...
    Điều em thắc mắc là: Khi mình tự tạo ra 1 hàm ví dụ như findByLastname hoặc findBy gì đấy thì tại sao lập tức jpa tự hiểu sẽ tạo querry để filter lastname?
    Em cảm ơn ạ

    • @youngdeveloper7871
      @youngdeveloper7871  3 года назад +2

      Haha, lâu có người hỏi câu hay.
      Cái findXXX gì đó. Spring doc nó gọi là Properties Expression. Nó sẽ băm cái XXX đó ra thành các thuộc tính của entity mà em tạo trong Repository. Để nó tìm ra quy tắc và generate ra câu lệnh SQL. Có lúc thuật toán băm kia sẽ không đúng lắm. Và Spring document có suggest cho mình dùng ổn định hơn bằng dấu _ . em có thể xem document Spring JPA nhé.
      Chưa thỏa mãn câu trả lời thì có thể inbox anh nhé

    • @nguyentoan9012
      @nguyentoan9012 3 года назад +1

      @@youngdeveloper7871 Em cảm ơn anh nhiều ạ. Em sẽ tìm hiểu thêm về cái Properties expression này.

    • @youngdeveloper7871
      @youngdeveloper7871  3 года назад +2

      @@nguyentoan9012 ừm em. Tìm hiểu cái đó nhiều cái cũng đỡ viết Query. Vì nó có nhiều từ khóa hỗ trợ nhiều điều kiện AND, Or, hỗ trợ sort, và cả điều kiện kí tự hoa thường, ..

    • @nguyentoan9012
      @nguyentoan9012 3 года назад

      ​@@youngdeveloper7871 ​ Em chào anh.
      Chả là em đang làm một cái bài tập bằng Springboot, em xin phép được hỏi anh một số thắc mắc không liên quan lắm tới video ạ.
      Em có một CSDL gồm 3 tables là:
      - Customer
      - Agreement (reference tới Customer)
      - Service (reference tới Agreement )
      Trong Class của Agreement thì em có thuộc tính là:
      @OneToOne, @JoinColumn(name="customer_id")
      private Customer customer;
      Với class Service thì tương tự (nhưng với Agreement).
      Trong class Customer thì chỉ có id và name.
      Em không biết làm cách nào để khi mình gửi một POST req lên Repository của Agreement chỉ với customer_id:
      {
      "customer_id": 1,
      "Id":1,
      "startDate:" .....,
      }
      và jpa lập tức tự map customer với id 1 với agreement id 1 lại.
      Em đã thử add hết thuộc tính customer như:
      {
      "customer": {
      "name": tom
      },
      "Id":1,
      "startDate:" .....,
      }
      thì được ạ nhưng nó sẽ tự động tạo ra một customer mới cùng tên với customer đã add trước đó.
      Em xin lỗi nếu có làm phiền anh ạ. Em cảm ơn anh đã đọc.

    • @youngdeveloper7871
      @youngdeveloper7871  3 года назад +1

      @@nguyentoan9012 gửi post lên controller em nhỉ.
      Hay inbox đi em