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
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
492bb98e0e
#2269 - findSingleAttributeList does not filter soft-deleted record
2021-07-22 17:12:06 +12: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
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
rbygrave
e82b8c80f0
#2265 - ArrayIndexOutOfBoundsException: Index -1 out of bounds with @IdClass and batch insert accessing id property
2021-07-13 11:30:31 +12:00
Roland Praml
824cfa27be
Queries are cancelable
2021-06-23 17:11:21 +02:00
Roland Praml
66cb6d5e7d
Imporved @Where support, especially for Many-to-many tables
2021-06-21 14:50:15 +02:00
rbygrave
8f432aa0a9
#2251 - Transparent persistence of to-many associations (with orphanRemoval)
2021-06-18 16:05:25 +12:00
rbygrave
7af4e166a4
#2253 - Incorrect JSON format for LocalDateTime. Includes Z suffix when it should not.
2021-06-17 13:26:34 +12:00
rbygrave
55bc498f9d
No functional change - refactor QueryIterator to use Iterator.remove()
...
default method
Iterator.remove() has a default implementation that throws UnsupportedOperationException which is what we want. Remove the close() method from QueryIterator and implementations so that we just use the Iterator.remove() default implementation.
2021-06-11 10:20:47 +12:00
rbygrave
884dd939b7
#2249 - Bug with DbJson Jackson property that is null is updated as null (unnecessarily included in update)
...
When the value is null and not changed then is was null before and should not be treated as dirty. Hence only check for dirty when value != null in BeanDescriptor 3182
2021-06-11 00:19:20 +12:00
rbygrave
4e088a40d9
Refactor DbJson Jackson handling adding DatabaseConfig.setJsonDirtyByDefault()
...
Adds the ability to change the default "jsonDirtyByDefault" configuration setting used with DbJson Jackson properties. Currently these default to being assumed dirty and this allows us to change that to be assumed not dirty (which is very likely the better default).
2021-06-11 00:08:03 +12:00
rbygrave
441f51ed79
#2247 - Refactor internals - Change DefaultTypeManager - tidy
2021-06-10 20:30:07 +12:00
rbygrave
9ee891dc66
#2247 - Refactor internals - Change DefaultTypeManager from class.newInstance() to class.getDeclaredConstructor().newInstance()
2021-06-10 20:09:34 +12:00
rbygrave
87ffcbf23e
No effective change - tidy CQuery
2021-06-10 19:45:27 +12:00
rbygrave
adfc54200f
No effective change - extract JacksonTypeHelper for ScalarTypeJsonObjectMapper
2021-06-10 19:27:42 +12:00
rbygrave
9be1dcff6c
Tidy internals ScalarTypeJsonObjectMapper, no functional change
2021-06-10 19:00:35 +12:00
rbygrave
37dff62fa9
#2246 - ENH: Add DtoQuery findStream() and findIterate()
2021-06-10 14:55:31 +12:00
rbygrave
33ac1923ff
No effective change - refactor move Str into server.util package
...
Allows the removal of io.ebeaninternal.server.lib package as that was the only thing in there.
2021-06-09 23:40:48 +12:00
rbygrave
0b87ae5eac
No effective change - tidy BindParams
2021-06-09 23:38:10 +12:00
rbygrave
c8345ce093
No functional change - refactor internal toStream() to use closure rather than explicit Runnable type for closing the stream
...
Conceptually javac closure might be better than an extra explicit type here
2021-06-09 16:21:15 +12:00
rbygrave
f3af43a9ce
Add support for findEach() on SqlQuery with RowMapper and scalar result
2021-06-09 15:49:48 +12:00
rbygrave
1df2ccb1c6
Refactor internals DefaultRelationalQueryEngine remove unnecessary method
...
- Remove findEach() method that took RowReader<T> and Consumer<T>
- Use findEachRow() instead
2021-06-09 15:19:35 +12:00
rbygrave
3add4472ef
Refactor internals DefaultRelationalQueryEngine.findListMapper()
...
- Remove findListMapper() method
- Introduce RowReader interface
- Combine findList internals for both SqlRow and RowMapper use
2021-06-09 14:58:08 +12:00
rbygrave
4613f63c66
Refactor internals DataReader remove resetColumnPosition()
...
- Move the reset of position to the DataReader.next() method
- Tidy up use of wasNull() in RsetDataReader
2021-06-09 12:57:56 +12:00
rbygrave
ae4f50e7b3
#2236 - Auto-tune does not work / throws RuntimeException (Regression from 12.7.1)
...
Note we are missing a test on ProfileManager but doing this for now.
2021-06-04 17:46:31 +12:00
rbygrave
6697aecd48
#2238 - Select with disjunction of expressions over OneToOne relationship missing join clause
...
Noting that there might be a better fix. The addJoin() at line 151 is suppressed as it is a duplicate for this case of a !oneToOneExported so a better fix might be to only add the soft delete clause when the join as actually added (not suppressed as a duplicate).
2021-06-04 17:16:50 +12:00
rbygrave
622a90c7d5
No effective change - tidy whitespace in TransactionManager
2021-05-23 23:00:34 +12:00
rbygrave
01bce5cfa6
#2226 - Automatically determining join columns and ignoring PrimaryKeyJoinColumn.name Id warning when I want to use Id as a foreign key
...
Improve the message and dropping to INFO level.
2021-05-23 22:20:40 +12:00
Rob Bygrave
f60ccb9b90
Merge pull request #2222 from ebean-orm/feature/support-filterMany-inline
...
Change such that filterMany can be included in the main query.
2021-05-21 17:20:17 +12:00
rbygrave
676bac390e
#2233 Followup change that unsets load buffer from BeanCollection
...
- Clears the buffer after it has been used to load BeanCollection's
- Sets the BeanCollection to use the server rather than the Load Buffer just in case there are subsequent calls for loading (which there should not be)
2021-05-21 09:01:45 +12:00