Commit Graph
882 Commits
Author SHA1 Message Date
Rob BygraveandGitHub 7feb193e95 Merge pull request #3007 from ebean-orm/refactor/rename-loadContext-methods
Refactor rename methods in LoadContext
2023-03-25 15:39:40 +13:00
Rob Bygrave 79fd689e9a Add support for raw SQL SubQuery expressions IN,EQ,NE,GT,GE,LT,LE,EXISTS,Not IN, Not EXISTS
For these expressions the SQL SubQuery is not parsed by ebean and
just used as is.
2023-03-24 22:38:52 +13:00
Rob Bygrave a68665a37e Refactor rename methods on SpiExpressionRequest, DeployParser etc 2023-03-24 19:57:21 +13:00
Rob Bygrave 9ff240dc10 Refactor SpiExpressionRequest split parse() into property() and path() to have fast path
property() uses a fast path for the common case that the expression is a bean property path.
This will then fall back to using parse() when that isn't the case.
2023-03-24 19:35:11 +13:00
Rob Bygrave 9982fa3682 Refactor SpiExpressionRequest split append() into append() and parse()
- append() adds to the sql with NO parsing
- parse() adds to the sql with parsing to replace logical bean paths into table alias placeholder + db column
2023-03-24 17:37:34 +13:00
Rob Bygrave f7a11135a5 Refactor rename methods in LoadContext
Rename internal methods only
2023-03-23 22:11:02 +13:00
Rob Bygrave c29a81248a Remove internal asserts on DLoadBeanContext bufferLock 2023-03-23 22:07:59 +13:00
Rob Bygrave fcefd94086 Fix for #3005 - Regression, Invalid SQL with RawSql in 13.15.0 due to #2996 2023-03-22 23:18:18 +13:00
Rob Bygrave 70e5d57b7e Bump to next snapshot version 2023-03-21 23:32:21 +13:00
Rob BygraveandGitHub dca13db945 Merge pull request #3002 from ebean-orm/feature/improveLogging-markedAsDeleted
Improve the logging around MarkedAsDeleted
2023-03-21 20:43:12 +13:00
Rob Bygrave bd318a5d85 Improve the logging around MarkedAsDeleted 2023-03-21 20:30:39 +13:00
3d7bebd244 FIX: DB.json().toBean(target) can update existing lists (#85)
* FIX: DB.json().toBean(target) can update existing lists

* remove sys.print, typo

---------

Co-authored-by: Roland Praml <roland.praml@foconis.de>
Co-authored-by: Juri Skrobko <juri.skrobko@foconis.de>
2023-03-17 11:04:53 +01:00
Rob BygraveandGitHub 4039c20462 Merge pull request #2996 from ebean-orm/buchtajz-query_select_bugs
Add support for specifying select clause with RawSql
2023-03-14 11:48:40 +13:00
Rob Bygrave 523fe6ae54 #2946 - Support specify select clause for RawSql 2023-03-10 20:31:54 +13:00
Rob Bygrave 8ec031bfde Merge branch 'query_select_bugs' of github.com:buchtajz/ebean into buchtajz-query_select_bugs 2023-03-10 19:38:26 +13:00
Rob Bygrave a8cad4f3d9 Change such that querybean generated class registration can be used will explicit class registration
In DatabaseConfig.isAutoLoadModuleInfo() it only used the querybean generated class registration is classes.isEmpty(). Changing this so that it only uses the loadModuleInfo flag.

This means, unless loadModuleInfo is set to false the classes that register with ebean will be a combination of both the explicitly registered ones plus the classes from the querybean generated EbeanEntityRegister.

In addition, this changes the classes from List to Set.
2023-03-10 11:01:46 +13:00
Rob Bygrave 456eb3aca9 Throw IllegalStateException when @Convert on property but there is no AttributeConverter registered for that type 2023-03-09 16:27:41 +13:00
Rob Bygrave dfc5963e35 Fix for IndexOutOfBoundsException: The size must be at least 1
Stack trace observed:

java.lang.IndexOutOfBoundsException: The size must be at least 1
    at io.ebeaninternal.server.deploy.id.IdBinderSimple.getIdInValueExpr(IdBinderSimple.java:135)
    at io.ebeaninternal.server.deploy.BeanDescriptor.parentIdInExpr(BeanDescriptor.java:1634)
    at io.ebeaninternal.server.deploy.BeanPropertyAssocManySqlHelp.addWhereParentIdIn(BeanPropertyAssocManySqlHelp.java:121)
    at io.ebeaninternal.server.deploy.BeanPropertyAssocMany.addWhereParentIdIn(BeanPropertyAssocMany.java:342)
    at io.ebeaninternal.api.LoadManyRequest.createQuery(LoadManyRequest.java:90)
    at io.ebeaninternal.server.core.DefaultBeanLoader.loadMany(DefaultBeanLoader.java:39)
    at io.ebeaninternal.server.core.DefaultServer.loadMany(DefaultServer.java:475)
    at io.ebeaninternal.server.loadcontext.DLoadManyContext$LoadBuffer.loadMany(DLoadManyContext.java:215)
    at io.ebean.common.AbstractBeanCollection.lazyLoadCollection(AbstractBeanCollection.java:90)
    at io.ebean.common.BeanList.init(BeanList.java:141)
    at io.ebean.common.BeanList.iterator(BeanList.java:327)
2023-03-09 09:57:41 +13:00
Rob Bygrave 36777d5a3d No effective change - static import for log level 2023-03-09 09:41:20 +13:00
rob 2e0dba3741 #2981 - ENH: Add profile-line-number-mode with options none | all | auto ... to control adding line numbers to profile locations 2023-02-22 23:02:42 +13:00
rob 34dc4375da Tidy existing given that lineNumber in SpiProfileLocationFactory always comes in as 0
The history behind this is that originally there was a "profileId" concept where that was a int value that could be used as an "id" for a transactional method that we wanted to profile.

That went away and then the idea was that bytecode enhancement would determine the line number and we would use that but that was a bad idea and we ended up with lineNumber always as 0.

These days with StackWalker and DProfileLocation we can do this better that way so yeah. A followup to this is to add to the api a boolean flag as to whether a profile location should be with line numbers (which can change frequently due to refactoring etc)
2023-02-22 15:22:58 +13:00
rob 0b615a79cc Add _ifPresent() expressions for GT, GE, LT, LE (follow up from #2768) 2023-02-22 14:04:26 +13:00
rob b0364f3c42 Use StackWalker for ProfileLocation and CallOrigin 2023-02-21 14:21:18 +13:00
buchtajzandGitHub 8c47ba89d1 Merge branch 'ebean-orm:master' into query_select_bugs 2023-02-21 00:04:39 +01:00
Rob BygraveandGitHub b9a502ca85 Merge pull request #2957 from FOCONIS/detailed-evict-stats
ENH: add statistics trimmedByGC/LRU/TTL/Idle to ServerCacheStatistics?
2023-02-14 16:29:35 +13:00
Rob BygraveandGitHub 0292b4b558 Merge pull request #2912 from ebean-orm/wip/spi-txn-logging
Refactoring SpiLogger to better support conditional logging
2023-02-14 15:03:47 +13:00
rob 2c8ae16179 Update to use String format and Object varargs 2023-02-14 14:54:23 +13:00
Rob BygraveandGitHub 381ac58eed Merge pull request #2936 from FOCONIS/mem-leak-streaming-queries
BUG: Memory-leak on streaming queries when LoadBuffers are not aligned
2023-02-14 11:45:29 +13:00
rob 5882169641 Merge branch 'feature/StdExpressions' 2023-02-14 11:35:31 +13:00
Michal Buchtík 1af3d0bcf3 remove unnecessary replace 2023-02-10 12:27:10 +01:00
Michal Buchtík 01a0cee3c2 patch RawSql query builder, fix tests 2023-02-10 12:17:40 +01:00
Rob Bygrave 44e0585fb7 #2961 - Followup for #2952 - @OneToMany + orphanRemoval + @SoftDelete + non-BeanCollection collection results in hard deletes
As noted in comments in #2952

In the internals of SaveManyBeans we have:

- BUG: the deleteByParentId is hard delete and does not care for soft delete
- YUK: internally we have 3 ways of performing the orphan removal when we really want 2

This change fixes the BUG and fixes the YUK. It does this by removing the special case at: https://github.com/ebean-orm/ebean/blob/ebean-parent-13.11.3/ebean-core/src/main/java/io/ebeaninternal/server/persist/SaveManyBeans.java#L347-L350 ... and replacing it with the more common orphan removal code used when we do not have BeanCollection modifications.

The result of this change is that in SaveManyBeans internals we get back to have 2 ways to remove orphans.

- A BeanCollection with modifications: Orphans explicitly deleted using the known elements removed from the collection
- All other cases: Orphans as everything NOT in the collection that is going to be updated
2023-02-10 13:08:44 +13:00
Rob BygraveandGitHub 889c0f12e0 Merge pull request #2960 from ebean-orm/buchtajz-one2many_setArraylist
Fix for @OneToMany orphanRemoval not occurring for #2952 #2953
2023-02-10 13:01:55 +13:00
Rob Bygrave 0135263dbd Style only for SaveManyBeans switching order in if/else 2023-02-09 23:45:27 +13:00
Rob Bygrave 564194042b No effective change, BeanCollectionUtil perform the instanceof Collection before instanceof Map check 2023-02-09 23:44:13 +13:00
Rob Bygrave 244d45674a #2952 #2953 - Fix for @OneToMany orphanRemoval not occurring
orphanRemoval was not occurring when a loaded bean had a collection
replaced by a new BeanCollection (as opposed to a vanilla collection
like java.util.ArrayList).

Json marshalling a collection puts beans into BeanCollection and this
is part of the test that reproduced this issue.
2023-02-09 23:29:13 +13:00
Rob Bygrave 3263e7bfc3 #2959 - Improve logging for lazy loading error due to "markAsDeleted" 2023-02-07 22:05:34 +13:00
Rob Bygrave 20f6a659fe #2959 - Improve logging for lazy loading error due to "markAsDeleted" 2023-02-07 19:59:33 +13:00
Roland Praml 010f73fea2 ENH: add statistics trimmedByGC/LRU/TTL/Idle to ServerCacheStatistics? 2023-02-02 14:10:54 +01:00
Rob Bygrave 5150ecba62 #2948 - SoftDelete entities are hard deleted on orphan removal 2023-02-02 23:15:22 +13:00
Rob Bygrave 978b1dbe02 Merge branch 'master' of github.com:ebean-orm/ebean 2023-02-02 23:06:49 +13:00
Rob Bygrave 09001e80b5 #2948 - SoftDelete entities are hard deleted on orphan removal 2023-02-02 23:02:44 +13:00
Roland Praml 371f50fb4d NEW: ExpressionList has clear() method 2023-01-23 11:33:29 +01:00
Roland Praml 61d6cccbcb FIX: Using weak references in load buffer for streaming queries 2023-01-20 16:51:51 +01:00
Rob BygraveandGitHub 1659c526d7 Merge pull request #2938 from FOCONIS/scan-cache-annotations-recursively
FIX: Search cache annotations recursively
2023-01-20 09:35:54 +13:00
Rob BygraveandGitHub d7e6feebc2 Merge pull request #2935 from ebean-orm/feature/2915-invalid-id-mapping
#2915 - Failing test for - generator param of @GeneratedValue is not ignored when using GenerationType.AUTO on db where this uses identity
2023-01-20 08:34:25 +13:00
Rob Bygrave 2a6c60c89b #2915 - Fix for generator param of @GeneratedValue is not ignored when using GenerationType.AUTO on db where this uses identity 2023-01-20 08:27:09 +13:00
Roland Praml b569ec97ee FIX: Search cache annotations recursively 2023-01-19 16:22:38 +01:00
Rob Bygrave f09cba3ab5 #2930 - Add extra test for DbOrderByTrimTest 2023-01-18 07:52:43 +13:00
Rob Bygrave 724183f669 Merge branch 'fix-order-by-on-prop' of github.com:FOCONIS/ebean into FOCONIS-fix-order-by-on-prop 2023-01-18 07:46:41 +13:00