Comments (3)
TypeOrm save
and update
methods support partial updating (meaning that it discards all undefined
properties). You can create an update
method in your repository that accepts something like Partial<Entity>
and updates only those fields you need it to update.
Anyway, I don't think this is something you should worry about that much. Updating a single aggregate by multiple request should not happen often. Most of your aggregates are probably updated by a single user anyway and in most cases users are not sending requests that fast.
I'd recommend spending time on a solution only if you have a real bottleneck in your application that is causing problems, otherwise don't worry about it.
from domain-driven-hexagon.
Good point.
TypeOrm repositories provide an update()
so it would be safer to use that instead.
Will fix it in the future if I have time
from domain-driven-hexagon.
Thanks for your quick answer, but if we look more general.... aggregate saving, the whole aggregate (all stackoverflow and other articles on the web out there), is fishy for me :).
Basically for this to work you shoud mix repository with logic, as in standard module->controller->service. Otherwise keeping logic in aggregate only you should "tell" somehow to the repository to save the exact fields that needs to update, maybe rows to insert, delete. Do you have some suggestion on this ?
from domain-driven-hexagon.
Related Issues (20)
- `StructuredClone()` function converts entity object into plain object, causing `undefined` properties when calling getters HOT 2
- @slonik/migrator is not compatible with slonik 30+ HOT 9
- InternalServerErrorException has incorrect documentation HOT 1
- FindUsersQuery should map data to response in order to avoid leaks HOT 1
- Why are ports defined in infrastructure layer? HOT 2
- Intermittent test failure for create-user HOT 7
- Clarification on the Practical Usage of Domain Services in DDD
- it shows compile error HOT 1
- execute start:dev throws error HOT 6
- Implement and add examples for Adapters and Providers from Infrastructure folder? HOT 6
- Enable GitHub discussions ? HOT 1
- Correct approach for different types of concept? HOT 1
- UnitOfWork creating many QueryRunners and not release them HOT 4
- Types are incorrect for value object's unpack method
- Dependency Inversion in new version HOT 1
- Queries using repositories HOT 1
- Query handler breaking the dependency rule? HOT 4
- Authentication module HOT 1
- Resolver returning type HOT 1
- resolver return HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from domain-driven-hexagon.