New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(core): support atomic updates via raw()
helper
#4094
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Closed
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## v6 #4094 +/- ##
=======================================
Coverage 99.56% 99.57%
=======================================
Files 217 217
Lines 13945 14006 +61
Branches 3190 3213 +23
=======================================
+ Hits 13885 13947 +62
+ Misses 56 55 -1
Partials 4 4
... and 5 files with indirect coverage changes Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report in Codecov by Sentry. |
B4nan
force-pushed
the
raw-uow-updates
branch
3 times, most recently
from
March 19, 2023 20:51
8fdb0bf
to
19e9056
Compare
```ts const ref = em.getReference(User, 1); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Mar 19, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Apr 6, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Apr 10, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Apr 12, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Apr 26, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
jsprw
pushed a commit
to jsprw/mikro-orm-full-text-operators
that referenced
this pull request
May 7, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes mikro-orm#3657
jsprw
added a commit
to jsprw/mikro-orm-full-text-operators
that referenced
this pull request
May 7, 2023
B4nan
added a commit
that referenced
this pull request
May 14, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
May 14, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
May 24, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
May 26, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Jun 11, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Sep 10, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Sep 20, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Sep 24, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Sep 30, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Oct 2, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Oct 17, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Oct 21, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Oct 25, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Nov 2, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
B4nan
added a commit
that referenced
this pull request
Nov 5, 2023
When you want to issue an atomic update query via flush, you can use the static `raw()` helper: ```ts const ref = em.getReference(Author, 123); ref.age = raw(`age * 2`); await em.flush(); console.log(ref.age); // real value is available after flush ``` The `raw()` helper returns special raw query fragment object. It disallows serialization (via `toJSON`) as well as working with the value (via [`valueOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this: ```ts order.number = raw(`(select max(num) + 1 from orders)`); user.lastOrderNumber = order.number; // throws, it could resolve to a different value JSON.stringify(order); // throws, raw value cannot be serialized ``` Closes #3657
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When you want to issue an atomic update query via flush, you can use the static
raw()
helper:The
raw()
helper returns special raw query fragment object. It disallows serialization (viatoJSON
) as well as working with the value (viavalueOf()
). Only single use of this value is allowed, if you try to reassign it to another entity, an error will be thrown to protect you from mistakes like this:Closes #3657