rbygrave
2dc48cf08d
ArrayContainsExpression equals() to use enhanced for loop
2021-08-10 22:00:46 +12:00
rbygrave
ede1ad0a4c
Fix BindParams equals() and hashCode()
2021-08-10 21:58:41 +12:00
rbygrave
3e8f76cd6d
Update HashCodeBindHash to use values for equals()
2021-08-10 21:49:31 +12:00
Roland Praml
181dc73d39
Use MD5 for QueryBindHash
2021-08-09 09:19:53 +02:00
rbygrave
8c101fd0a4
#2268 - Feature request/question: Query execution time for debugging
2021-08-09 16:48:59 +12:00
rbygrave
43213ead05
#2291 - ENH: Explicit option for fast-failing or not fast-failing (skipDataSourceCheck config option)
2021-08-09 15:10:59 +12:00
rbygrave
c610f95b2d
#2293 - Metric hash back to MD5 of sql + name + loc (minus location file and line source) ~= Revert of #2288
2021-08-09 14:05:10 +12:00
rbygrave
fea7de42d5
#2290 - Add MetaTimedMetric locationHash() which is a crc32 checksum of package + type + method (excludes line number)
2021-08-06 14:48:42 +12:00
rbygrave
801d419f51
Refactor io.ebean.meta API, method rename with deprecation
2021-08-06 13:14:29 +12:00
rbygrave
202d785710
Rename hash to sqlHash to better reflect what it is (CRC32 checksum of the sql)
2021-08-06 12:06:43 +12:00
rbygrave
7ca72a39b1
Change query metric hash from MD5 of sql + name + loc to Checksum of sql
2021-08-06 11:52:38 +12:00
rbygrave
f34e0f5f2b
#2287 - ebean-migration: For multiple platforms automatically run the correct migrations
2021-08-05 23:03:02 +12:00
rbygrave
2043fdf7e1
#2274 Add DatabaseConfig jsonMutationDetection property setting the global default mode
2021-08-05 13:12:18 +12:00
rbygrave
d601a88d82
#2278 - Move null to empty json collections check to BeanPropertyJsonBasic
2021-07-30 23:53:28 +12:00
rbygrave
443e826f61
#2278 - Embedded bean override with DbJson property
2021-07-30 23:22:06 +12:00
rbygrave
2691221168
#2278 - Do not override empty json collections, when database value is null
2021-07-30 22:53:51 +12:00
Rob Bygrave
604099429e
Merge pull request #2282 from ebean-orm/feature/json-mutable-collections
...
Treat json Jackson collections the same wrt mutation detection
2021-07-30 21:15:04 +12:00
Rob Bygrave
11dc7f64ba
Merge pull request #2274 from ebean-orm/feature/json-dirty-detection-md5
...
Add support for JSON bean mutation detection via HASH and SOURCE of JSON string content
2021-07-30 21:11:42 +12:00
rbygrave
ceea705a76
Treat json Jackson collections the same wrt mutation detection
2021-07-30 20:20:03 +12:00
rbygrave
ca1636ff9e
Fix when json/jackson bean inserted as null and not changed
...
Expectation is that it is not included in update (still null, no change)
2021-07-30 17:16:05 +12:00
rbygrave
777d322222
#2279 - Remove _ebean_getMarker() from EntityBean interface - not actually required
2021-07-30 14:51:38 +12:00
rbygrave
822fb7325a
Due to mutableNext handling, with checkMutableProperties() even when known dirty go into beanProperty.checkMutable()
...
As per rPraml's PR and comment
Due to handling of mutableNext we need checkMutableProperties() to call into what is now beanProperty.checkMutable() even when we already know it's dirty.
2021-07-29 23:37:29 +12:00
rbygrave
20becf951d
Use MutationDetection replacing dirtyDetection and keepSource
...
Also adds NoMutationDetection to support NONE
2021-07-29 23:11:42 +12:00
rbygrave
c66d248e96
Add MutableValueNext to replace mutableContent such that hash compute is only done once
...
Adds MutableValueInfo.nextDirty() to replace the isEqualToJson() method. The next is computed once and stored. BindablePropertyJsonUpdate makes the .mutableNext(propertyIndex) call to move the next MutableValueInfo and return the json content.
2021-07-29 15:42:16 +12:00
rbygrave
0d8e7c852b
Change Checksum to use CRC32
2021-07-29 15:32:06 +12:00
rbygrave
991c6d6b5c
No effective change - tidy FactoryProperty
2021-07-29 13:30:15 +12:00
rbygrave
2bc5d3d325
Refactor rename MutableHash to MutableValueInfo (and subsequent rename on methods etc)
2021-07-29 13:20:30 +12:00
rbygrave
5ad8e7ead4
Use new @DbJson dirtyDetection and keepSource attributes
...
- Bump ebean-annotation with new @DbJson dirtyDetection and keepSource attributes
- Get those to BeanPropertyJsonMapper to chose MutableHash implementation
- Modify MD5MutableHash to include check for isDirty()
- EBasicJsonList needs keepSource=true to pass that test with oldValue
2021-07-29 12:47:10 +12:00
rbygrave
86483ff947
Use scalarType.format(value) removing scalarType.jsonMapper(value)
...
Remove scalarType.jsonMapper(value) as we can just use format(value) instead
2021-07-29 11:52:15 +12:00
rbygrave
92d7a7562f
Tidy only - no functional change to MutableHash and BeanPropertyJsonMapper
2021-07-29 11:49:01 +12:00
rbygrave
52fe3cf3c8
Change from MD5 to Checksum (Adler32) for json content dirty detection
2021-07-29 11:40:05 +12:00
rbygrave
94fb6414fa
Refactor move createMutableHash() method from ScalarType to BeanProperty / BeanPropertyJsonMapper
2021-07-29 11:28:25 +12:00
Roland Praml
b497b8635b
some refactor and tidying
2021-07-28 17:22:29 +02:00
Roland Praml
5e595ec5f8
Proof of concept to support also bean change detection / changelog on mutable properties
2021-07-28 14:54:56 +02:00
rbygrave
49b86d07d3
Modify SqlBeanLoad to use readSet()
...
Note that we don't need to use readSetIntercept() now as there is no property change listener support
2021-07-28 22:48:29 +12:00
rbygrave
11eed4cfe9
Add BeanPropertyJsonMapper for JSON dirty detection
2021-07-28 21:43:57 +12:00
rbygrave
4aef0ad459
#2275 - Change Query<?> to Query<T> on ExtendedServer exists() method
2021-07-28 17:23:37 +12:00
rbygrave
6c262f1df5
JSON bean dirty detection via MD5 of JSON string content
...
- MD5 of json content stored on EntityBeanIntercept for dirty detection
- Only convert to JSON once (at dirty detection time). Store this json content on EntityBeanIntercept to later push to ScalarTypeJsonObjectMapper for bind
Should consider alternative to extend BeanProperty rather than have these if blocks.
2021-07-23 16:50:24 +12:00
rbygrave
e54b7052e0
#2272 Fix for collection with orphanRemoval (such that equals/hashCode isn't use)
...
- Changes ModifyHolder to use IdentityHashMap such that equals/hashcode isn't invoked
- Change SaveManyBeans such that M2M intersection deletes execute before inserts
The SaveManyBeans change is required to pass TestM2MModifyTest. With that test we get a delete/insert pair that we somewhat expect because we clear() the collection. Previously equals/hashCode meant we didn't get that delete/insert pair.
The test changes from containsExactly() to containsOnly() as we now can't guarantee the ordering with IdentityHashMap.
2021-07-23 12:18:06 +12:00
rbygrave
492bb98e0e
#2269 - findSingleAttributeList does not filter soft-deleted record
2021-07-22 17:12:06 +12:00
Jonas Pöhler
60ef87b269
Merge remote-tracking branch 'ebean/master' into pr/enh/softreference_in_cache
2021-07-16 15:29:33 +02:00
Jonas Pöhler
3d4de4dee5
FIX TestRawSqlService and TestRawSqlBuilder
2021-07-16 15:17:04 +02:00
Jonas Pöhler
c621435a28
Merge remote-tracking branch 'ebean/master' into pr/bugfix/connection_closed_on_clob
2021-07-16 13:32:24 +02:00
rbygrave
7408483a43
#2264 - Use of default timezone for OffsetDateTime offsets problematic for unit tests and presentation layer
2021-07-15 17:14:22 +12:00
Roland Praml
7e265f7bde
FIX: SubQuery with fetch-path does not work correctly
2021-07-13 09:09:30 +02:00
rbygrave
4d15535381
No functional change - tidy DefaultDbSqlContext
2021-07-13 16:48:45 +12:00
Rob Bygrave
787c2f90f2
Merge pull request #2188 from FOCONIS/fix-order-by
...
FIX: orderBy does not work when used on formula property
2021-07-13 16:41:33 +12:00
Rob Bygrave
e590a2149d
Merge pull request #2257 from FOCONIS/queries-are-cancelable
...
Queries are cancelable
2021-07-13 16:11:36 +12:00
Rob Bygrave
29582b57f7
Merge pull request #2256 from FOCONIS/many-where-support
...
Improved @Where support, especially for Many-to-many tables
2021-07-13 15:01:49 +12:00
rbygrave
8840628d34
#2262 - Transaction postCommit Callback not invoked when the active transaction has no database writes
2021-07-13 14:45:48 +12:00