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é..@@@
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é
@@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 !
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 ?
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
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
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
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
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é
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 ạ
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 ừ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, ..
@@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.
trời đất, cảm ơn anh, em đang học môn lập trình Java mà lúng túng đủ thứ
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é..@@@
Cảm ơn em rất nhiều
Cảm ơn anh, video rất hay và bổ ích ạ
quá hay và dễ hiểu cảm ơn anh rất nhiều
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é
Perfect =))))) cảm ơn anh nhiều, đây có thể coi là đi từ thiện kiến thức =)))
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 ❤
video hay 1 thì comments hay 10. cảm ơn anh. mong anh ra nhiều video mới
Cảm ơn em có lời khen, anh sẽ làm trong thời gian tới
Hay quá anh. Xem xong em cảm giác vén mây mù thấy mặt trời
Có phải nói vậy là quá không em :D
@@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
Cảm ơn anh nhiều ạ, những giải thích này rất bổ ích cho newbei như e
video hay và bổ ích ạ . Nghe giọng giống a HUY dạy ở FA quá
Haha. Hình như em nhầm anh với ai rồi :D
Video rất hữu ích, cảm ơn anh nhiều ạ
Cảm ơn em
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
Anh cảm ơn em nhiều lắm. Anh sẽ làm nhiều video hơn cho các em xem
Cám ơn anh nhiều ạ.Mong anh ra thêm nhiều video về Java web ạ.
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
@@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 !
video hay quá anh, cảm ơn anh rất nhiều ạ
Anh cảm ơn em
@@youngdeveloper7871 mong anh làm video về crud hibernate ạ
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
Hay quá anh
Thanks, Thao
Cảm ơn anh nhiều, video rất dễ hiểu =))
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 ạ
Hoan nghênh em, hơi tiếc kì này a không có dạy
@@youngdeveloper7871 dạ vâng ạ
dễ hiểu quá ạ
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ó
haha. Cảm ơn em
@@youngdeveloper7871 anh làm full seri làm fullstack java đi anh
Anh sẽ cố gắng, hiện tại a chưa có nhiều time lắm
Hay a
Cảm ơn bạn rất nhiều
hay quá bạn ơi
Mình cảm ơn bạn
Perfect
Cảm ơn bạn
Nâng cấp cuối cùng chúng ta có Spring boot + JPA
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 ạ
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 ?
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
anh giải thích dùm mấy cái trong cascade được không? ví dụ như persist, merge, detach...
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
Đúng cai em cần
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
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
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 ạ?
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é
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 ạ
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é
@@youngdeveloper7871 Em cảm ơn anh nhiều ạ. Em sẽ tìm hiểu thêm về cái Properties expression này.
@@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, ..
@@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.
@@nguyentoan9012 gửi post lên controller em nhỉ.
Hay inbox đi em