How to Return DTOs from Native Queries with Spring Data JPA

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ก.ย. 2024
  • 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-jansse...
    How to Use Named Queries with Spring Data JPA : thorben-jansse...
    Result Set Mapping: Constructor Result Mappings
    thorben-jansse...
    Like my channel? Subscribe!
    ➜ bit.ly/2cUsid8
    Join the free Member Library:
    goo.gl/dtyIIC
    Read the accompanying post: thorben-jansse...
    Want to connect with me?
    Blog: thorben-jansse...
    Twitter: / thjanssen123
    Facebook: / thorbenjanssenofficial
    Linkedin: / thorbenjanssen
    #SpringDataJPA #ReturnDTOs #NativeQuery

ความคิดเห็น • 34

  • @rohanbipetkar3800
    @rohanbipetkar3800 2 ปีที่แล้ว +1

    I was getting this ConverterNotFoundException, searched alot about this but didn't find anything specific. Found this video which is extremely helpful

  • @haoxu3515
    @haoxu3515 2 ปีที่แล้ว

    This tutorial is super concise and accurate. It accurately answered the questions most likely to be asked by fresh learners like me..

  • @andreafranceschini2400
    @andreafranceschini2400 2 ปีที่แล้ว

    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. 👍

  • @kennedmena4121
    @kennedmena4121 2 ปีที่แล้ว +1

    wao I did save a lot of time just doing the first scenario, making an interface for getting the data.
    thanks a lot

  • @nitinsoni3358
    @nitinsoni3358 หลายเดือนก่อน

    Good work, thanks

  • @ASSASIN299
    @ASSASIN299 ปีที่แล้ว

    Thanks my friend, just what I needed

  • @abhisheksuryawanshi9102
    @abhisheksuryawanshi9102 2 ปีที่แล้ว

    GOD LEVEL TOUTORIAL

  • @niiel98
    @niiel98 ปีที่แล้ว

    YOU ARE AMAZING!!!!! THANKS!!!!!

  • @profebuka
    @profebuka 3 ปีที่แล้ว +2

    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.

    • @danykoudja168
      @danykoudja168 3 ปีที่แล้ว +1

      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.

  • @Denys.Stoianov
    @Denys.Stoianov 3 ปีที่แล้ว

    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 🤔

  • @azizbekibnhamid642
    @azizbekibnhamid642 ปีที่แล้ว

    Thank you very much

  • @menssageiro01
    @menssageiro01 ปีที่แล้ว

    kkk, mais uma vez precisei assistir esse vídeo.

  • @yousufbaig821
    @yousufbaig821 2 ปีที่แล้ว

    Superb video !! Thanks a lot. This helped me a lot.

  • @srikanthkadiyala5971
    @srikanthkadiyala5971 หลายเดือนก่อน

    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..

  • @ModifiedGaddiyan
    @ModifiedGaddiyan 2 หลายเดือนก่อน

    tell me when query gives you list of names then how to get that list?

  • @anjanx44
    @anjanx44 ปีที่แล้ว

    Thanks man you save my lots of time ❤

  • @yyyyyyyyyyy1988
    @yyyyyyyyyyy1988 2 ปีที่แล้ว

    Thanks alot sir, you saved my day

  • @paolofrancescosciammarella1420
    @paolofrancescosciammarella1420 2 ปีที่แล้ว

    Amazing! Thank u so much!

  • @bareetsingh
    @bareetsingh 2 ปีที่แล้ว

    Thank you, so much sir.

  • @kushalyeluri5793
    @kushalyeluri5793 ปีที่แล้ว

    If I use namednativequery with custom DTO using sqlresultsetmapping. Is it possible to perform pagination for that?

  • @urrahman196
    @urrahman196 2 ปีที่แล้ว

    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

  • @ekaterinagalkina7303
    @ekaterinagalkina7303 3 ปีที่แล้ว

    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)?

  • @menssageiro01
    @menssageiro01 3 ปีที่แล้ว

    Muito Obrigado pela aula.

  • @KrishnaKishore
    @KrishnaKishore 2 ปีที่แล้ว

    @Thorben Can I export these Repos as a Jar and use them in different projects?

  • @yamincires5313
    @yamincires5313 3 ปีที่แล้ว

    I love your content :)

  • @TrinhNguyen-lf6zp
    @TrinhNguyen-lf6zp 2 ปีที่แล้ว

    sorry, i fail with field id data type bigint sqlserver -> data type java Long. Exception: Could not locate appropriate constructor on class: xxxDto

  • @marcelbartholome5629
    @marcelbartholome5629 3 ปีที่แล้ว

    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!

  • @SohelRana4-m5c
    @SohelRana4-m5c 3 วันที่ผ่านมา

    Walker Brenda Rodriguez Ronald Taylor Betty

  • @EtanRowleS
    @EtanRowleS 2 วันที่ผ่านมา

    Jones Sandra Garcia Dorothy Walker Margaret

  • @SoutheyYale
    @SoutheyYale 2 วันที่ผ่านมา

    White Larry Martinez Melissa Johnson Nancy

  • @ShinAkuma
    @ShinAkuma 2 ปีที่แล้ว

    That's too much code.
    Just use " select new MyPojo( a.col1, a.col2... ) from Table a"