Commit Graph
1246 Commits
Author SHA1 Message Date
Rob Bygrave fbcd4c3133 Add filterManyRaw() and Deprecate filterMany( <string expressions> )
The filterMany( <string expressions> ) uses the language parser which
ultimately will we probably remove in ebean 15.x

Code can migrate to filterManyRaw() instead or better yet change to
use the improved query beans filterMany( <closure> ) option that will
be included in this same ebean release.
2023-08-21 11:15:39 +12:00
Rob Bygrave 1933beed9b Tidy unused import in CQueryPredicates 2023-08-20 23:52:10 +12:00
Rob Bygrave defb35b258 FIX for filterMany with raw expression with single SQL query
Fix for the case where the filterMany is not executed on a separate
query but instead part of the origin query.

The fix is to use the appropriate DeployParser and also fix the path
alias like ${} -> ${contacts}
2023-08-20 23:32:55 +12:00
Rob Bygrave 8a4024ecfc FIX for filterMany with raw expression with single SQL query
Fix for the case where the filterMany is not executed on a separate
query but instead part of the origin query.

The fix is to use the appropriate DeployParser and also fix the path
alias like ${} -> ${contacts}
2023-08-19 13:54:38 +12:00
Rob Bygrave 00e594d4fa Refactor prefer char append 2023-08-19 11:01:15 +12:00
Rob BygraveandGitHub b116d3da28 Merge pull request #3169 from ebean-orm/feature/filterMany-TQAssoc
Add Query bean filterMany() taking a closure
2023-08-19 10:11:46 +12:00
Rob Bygrave 0e9fe6a096 Remove extra space added to the generated SQL via the LIKE expression 2023-08-19 09:29:19 +12:00
Rob Bygrave ded4b94e54 Add Query bean filterMany() taking a closure
Query beans also generate a "Assoc" query bean that is used
for the relationships. Previously these were generated into a
.query.assoc package and with this they are generated as an
inner class of the query bean.

This then allows the change where an additional filterMany()
is generated on the "Assoc" bean that takes a closure. This
simplifies the use of query beans for filterMany.

This change to the generated query beans needs a change to the
ebean-agent enhancement.
2023-08-18 22:12:30 +12:00
Rob Bygrave eb0812df16 Bump to next snapshot 2023-08-17 23:26:26 +12:00
Rob Bygrave 9ccaa824e0 Version 13.21.0 2023-08-17 22:51:00 +12:00
robin.bygrave bab9be0228 Change Lists.partition() argument order to match Guava's
- May as well match what they have in terms of arg order
- Change from interface to class might be better
2023-08-17 15:36:03 +12:00
robin.bygrave 76c889c6d9 InTuples literal mode - don't cache ebean compiled query plan
- Don't cache ebean compiled query plan when InTuples goes into literal mode
- Postgres maxInBinding = 32_000;
- SQLite maxInBinding = 800;
- Note that not caching the compiled query plan means that metrics visitor isn't
  going to see it, we lose collection of that query execution metric. We might
  need a plan to fix this later.
2023-08-17 15:08:16 +12:00
Rob Bygrave 9d7754b92d Add support for literal mode for InTuples with lots of entries
So as to not exceed the limit on bind values, the InTuples expression can
go into literal mode where it uses literal values for supported types -
Numbers, Strings, UUID, and LocalDate.
2023-08-17 00:33:56 +12:00
Rob Bygrave a1b51fd8ef For DefaultPersister batch deletion, use more explicit maxDeleteBatch 2023-08-16 17:55:41 +12:00
Rob Bygrave bcc4034371 Add Lists.partition() helper method and use in DefaultPersister batch deletion 2023-08-16 17:39:10 +12:00
Rob Bygrave 87ada9e999 IdBinder - refactor rename methods 2023-08-16 00:11:46 +12:00
Rob Bygrave ea55f25d44 Tidy IdBinderEmbedded - merge use of getIdProperty() and idSelect() to use idSelect()
Means we can remove getIdProperty()
2023-08-15 23:36:59 +12:00
Rob Bygrave 7c16694d4b Fix to #3133 changes for Postgres adding back support for MultiValue binding
The MultiValue binding that we use for Postgres, Yugabyte etc was lost with
the changes in #3133 and this puts that back.

We desire to use Postgres ANY Array binding for these cases.
2023-08-15 23:17:31 +12:00
Rob BygraveandGitHub ea60ff47cf Merge pull request #3160 from ebean-orm/feature/alsoIf
Add Query alsoIf() to conditionally apply changes to a query
2023-08-15 22:25:28 +12:00
Rob Bygrave ec0c00eb72 Add Query alsoIf() to conditionally apply changes to a query 2023-08-15 21:56:50 +12:00
Rob Bygrave dd99e32cc6 Change IdClass property name to _$IdClass$ 2023-08-15 21:55:09 +12:00
Rob BygraveandGitHub 1decbe0152 Merge pull request #3147 from FOCONIS/rethrow-error-in-commit
FIX: Rethrow error in commit path of callbacks
2023-08-14 23:25:04 +12:00
Rob Bygrave 1598b40c36 Followup for #3133 - "Embedded id expansion on parentIds" for SQLServer and DB2 2023-08-14 23:00:41 +12:00
Rob Bygrave e821d66268 Tidy IdBinderEmbedded final fields, StringBuilder sizes and reuse code 2023-08-14 15:10:00 +12:00
Rob BygraveandGitHub b8e164e04c Merge pull request #3148 from FOCONIS/fix-recursive-batch-flush
FIX: Recursive batch flush can save beans in wrong order
2023-08-14 13:55:50 +12:00
Rob BygraveandGitHub 9097466a7b Merge pull request #3145 from FOCONIS/m2m-where-formula
FIX: Query on formula m2o-property uses wrong alias:
2023-08-14 13:55:21 +12:00
Rob Bygrave 2f233db465 #3133 - For IdClass match on property name 2023-08-10 23:22:57 +12:00
Rob Bygrave b5ac31838c #3134 Fix for - String cannot be cast to class io.ebean.bean.EntityBean" when deleting entities that use cascade = [CascadeType.ALL] with composite keys 2023-08-10 21:11:58 +12:00
Roland PramlandRoland Praml d3427876b7 FIX: Recursive batch flush can save dependant beans in wrong order 2023-08-08 16:59:46 +02:00
Roland Praml 4b2976e31b Rethrow error in commit path of callbacks 2023-08-08 16:35:25 +02:00
Roland Praml 7f441ce72e FIX: M2M Where Formula joins 2023-08-08 14:02:34 +02:00
robin.bygrave 12a3a180f4 [Postgres] Include buffers in Postgres explain - explain (analyze, buffers) 2023-07-18 13:52:21 +12:00
Rob Bygrave ffc21daaba Bump to next snapshot 2023-07-05 23:28:49 +12:00
Rob Bygrave d051bba71f Version 13.20.1 2023-07-04 12:05:30 +12:00
Rob Bygrave fc16bde227 Modify ImplicitReadOnlyTransaction, call deactivate in finally 2023-07-03 22:43:13 +12:00
Rob Bygrave 94b3a020d5 Modify ImplicitReadOnlyTransaction useCommit to check connection.getAutoCommit() 2023-07-03 21:40:21 +12:00
Rob Bygrave 3e241907e6 Modify internal ImplicitReadOnlyTransaction to also support calling commit()
Originally, ImplicitReadOnlyTransaction was built to support read-only DataSource where the connections are using autoCommit true. This change modified ImplicitReadOnlyTransaction to also support use with the main DataSource where the connection are not using autoCommit true.

This is also now needed for the query.usingMaster() case where we have an implicit read only transaction but use the main DataSource with underlying connection requiring explicit commit() at the end of the transaction.
2023-07-03 21:27:58 +12:00
Rob Bygrave c4af1d9b23 Add query.usingMaster() to explicitly choose master data source
When we have a read replica with potential for replication lag, and config a read only DataSource to use that read replica, by default a query executed without a current transaction will use the read replica.

We specify usingMaster() when we explicitly want to execute a query and use the master data source.
2023-07-03 16:41:22 +12:00
Rob Bygrave 8209d9e229 Add SpiInTuples to hide more details from InTuples 2023-07-03 12:41:31 +12:00
Rob Bygrave e952b555e0 Add InTuples expression for multi-column IN expression 2023-07-03 11:49:53 +12:00
Rob Bygrave d4bec166f7 #3109 Fix for JtaTransactionManager when no active transaction
The call to registry() can throw an exception so
pulling that inside the try catch block and handle
that as no active transaction returning null.
2023-06-26 21:30:01 +12:00
Rob Bygrave 9a4b9d4bec Bump to next snapshot version 2023-06-21 07:08:13 +12:00
Rob Bygrave 68a6e98292 Version 13.20.0 2023-06-20 20:35:04 +12:00
Rob Bygrave fa1f225e67 #3109 follow up - refactor rename internal methods 2023-06-20 19:41:00 +12:00
Rob Bygrave 7a72adedfa #3109 JtaTransactionManager - fix getCurrentTransaction()
Fix for JtaTransactionManager to allow Wildfly (or other) to throw an Exception when TransactionSynchronizationRegistry.getResource() is called.
2023-06-20 19:39:08 +12:00
Rob BygraveandGitHub 9fc1bec6a9 Merge pull request #3046 from FOCONIS/bugfix/lazy_loading_findEach_garbage_collection
Bugfix for NPE when lazyLoading in findEach due to Garbage Collection
2023-06-17 11:56:25 +12:00
Rob Bygrave 870d90d055 Followup to #3113, remove unused first BatchControl queue 2023-06-17 11:35:51 +12:00
Jonas Pöhler b63445e9c9 FIX: Put the delete statements into the correct flush-queue, so they do not conflict with the following inserts 2023-06-16 16:26:14 +02:00
robin.bygrave c7f6c508a6 #3101 - Support JPA Indexes 2023-06-16 13:44:03 +12:00
Rob Bygrave 462d30bbb7 Version 13.19.0 2023-06-07 17:56:19 +12:00