This complexity may not be that big in general depending on the application and the complexity of your business case.
If we presume that:
- Your entities are your persistence layer - understand hibernate/jooql or whatever.
- You business logic is in some domain objects, for example, agnostic of the persistence.
- On top, you have your DTOs presentation layer.
It looks alright for a complex enough application.
If your case is simple, it may be possible to merge some of these layers, e.g., your persistence objects may as well be your domain objects, but that depends very much on the case. For a very simple case, it may well be justified to just merge everything.
With regards to how you can reduce some of the boilerplate code, there are plenty of frameworks that can help you. If it was Java, I would have pointed Mapstructs out to you. It is a Mapper generation library that will make your conversion between layers quite straight forward. Other approaches are also possible.
Also layer number 2 can be represented as simple services. The usage of Domain Objects is not mandatory.