How to Return DTOs from Native Queries with Spring Data JPA
HTML-код
- Опубликовано: 8 сен 2021
- When using Spring Data JPA, you are used to derived and custom queries that return the result in your preferred format. A typical example is a DTO projection, which is the most efficient one for read-only operations. To use it in a derived or custom JPQL query, you only need to change the return type of your repository method to your DTO class or interface. But when using a native query, some limitations make DTOs a little harder to use.
Links mentioned:
Composite Repositories - Extend your Spring Data JPA Repository: thorben-janssen.com/composite...
How to Use Named Queries with Spring Data JPA : thorben-janssen.com/spring-da...
Result Set Mapping: Constructor Result Mappings
thorben-janssen.com/result-se...
Like my channel? Subscribe!
➜ bit.ly/2cUsid8
Join the free Member Library:
goo.gl/dtyIIC
Read the accompanying post: thorben-janssen.com/spring-da...
Want to connect with me?
Blog: thorben-janssen.com/
Twitter: / thjanssen123
Facebook: / thorbenjanssenofficial
Linkedin: / thorbenjanssen
#SpringDataJPA #ReturnDTOs #NativeQuery Наука
This tutorial is super concise and accurate. It accurately answered the questions most likely to be asked by fresh learners like me..
I was getting this ConverterNotFoundException, searched alot about this but didn't find anything specific. Found this video which is extremely helpful
Thanks my friend, just what I needed
Superb video !! Thanks a lot. This helped me a lot.
Muito Obrigado pela aula.
wao I did save a lot of time just doing the first scenario, making an interface for getting the data.
thanks a lot
A good tutorial that makes things clear and simple. It helped me to solve a problem. One thing: in the repository definition of the query I had to use (@Param("id") Long id) instead of (Long id) to make it work. 👍
and yes, I subscribed to the channel 🙂
Thanks man you save my lots of time ❤
Thanks alot sir, you saved my day
Amazing! Thank u so much!
YOU ARE AMAZING!!!!! THANKS!!!!!
Good work, thanks
Thank you, so much sir.
I love your content :)
Thank you.
Thank you very much
GOD LEVEL TOUTORIAL
Hello, Can you please make a tuto or blog on - how to do the scalar projection? Got few lines in tour blog but not details implementation, I am talking about the object[ ] way to implement DTO
p.first_name as firstName. But what would be the alias for a nested object? For example, address.street as {what?} (assuming that PlayerName references Address)?
Good Morning, I have a scenario to fetch the data from teradata sql views by using spring-boot-data-jpa with no primary key column in database.
1. When using entity it is expecting primary key but we don't have the PK ID column in database.
Existing behaviour of data mapping:
They joined multiple views and getting the data and mapping DTO class by using RowMapper with spring-boot < 3.x
Expected:
After >3.x spring-boot version upgrade data binding is not happening.
If you have any idea that would be great helpful to me?? Thanks
Note:I have done the all the code change related to JPA but getting the Exception like ID column not found in database because as mentioned don't have Id column in views..
tell me when query gives you list of names then how to get that list?
@Thorben Can I export these Repos as a Jar and use them in different projects?
kkk, mais uma vez precisei assistir esse vídeo.
If I use namednativequery with custom DTO using sqlresultsetmapping. Is it possible to perform pagination for that?
This is the good things, but I didn't get how it works, I need to try it in ide. Maybe in next video if is possible to show how it works in IDE with real coding for better understanding 🤔
sorry, i fail with field id data type bigint sqlserver -> data type java Long. Exception: Could not locate appropriate constructor on class: xxxDto
Good content but it's complex. JPA can execute with native query to return the entity class. Then I can map the enity class to the dto.
Unfortunately, the entire entity graph of your entity class is loaded before you map it to your dto. With the approach presented, the projection on the fields you need in your dto are directly made during the SQL query. So your query becomes faster.
Hi, Thorben, ich mag deine Videos sehr und habe normal auch kein Problem, diese in englischer Sprache zu hören, aber manchmal wäre es auch cool sie zusätzlich in deutsch anschauen zu können. vll. denkst du mal darüber nach auch deutsche Untertitel einzubauen. Mach Weiter so!
That's too much code.
Just use " select new MyPojo( a.col1, a.col2... ) from Table a"