Commit Graph
320 Commits
Author SHA1 Message Date
Rob Bygrave 664120f369 Add InTuples expression for multi-column IN expression 2023-07-03 11:54:38 +12:00
Rob Bygrave e952b555e0 Add InTuples expression for multi-column IN expression 2023-07-03 11:49:53 +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
Jonas Pöhler 09f616aae8 ADD: testcase for showing an issue with deleting and re-adding many-to-many elements (size > 20)
(cherry picked from commit e6a4bc4e0c31bb35ab5a13c958c7c4b1f68ca037)
2023-06-16 16:16:53 +02:00
robin.bygrave c7f6c508a6 #3101 - Support JPA Indexes 2023-06-16 13:44:03 +12:00
Rob Bygrave 2929483b0d Refactor ebean-core internal API - getters -> accessors 2023-06-01 22:05:53 +12:00
Rob Bygrave 430926c5a9 Remove deprecated Query setLoadBeanCache() - migrate to setBeanCacheMode()
Typically migrate to `.setBeanCacheMode(CacheMode.PUT)` or `.setBeanCacheMode(CacheMode.OFF)`

```java

  /**
   * Deprecated - migrate to use setBeanCacheMode(CacheMode.PUT) or other CacheMode.
   * <p>
   * When set to true all the beans from this query are loaded into the bean cache.
   */
  @Deprecated
  Query<T> setLoadBeanCache(boolean loadBeanCache);

```
2023-06-01 20:44:31 +12:00
Rob Bygrave e5f7a28d80 Remove deprecated methods from ProfileLocation
These methods are no longer used.
2023-06-01 20:00:50 +12:00
Rob Bygrave 15de44eef8 Remove deprecated MetaInfoManager.collectMetricsAsJson() - move to collectMetrics().asJson()
Removing these deprecated methods:
- collectMetricsAsJson() -> collectMetrics().asJson();
- collectMetricsAsData() -> collectMetrics().asData()

```java
  /**
   * Deprecated migrate to collectMetrics().asJson().
   */
  @Deprecated
  default ServerMetricsAsJson collectMetricsAsJson() {
    return collectMetrics().asJson();
  }

  /**
   * Deprecated migrate to collectMetrics().asData().
   */
  @Deprecated
  default List<MetricData> collectMetricsAsData() {
    return collectMetrics().asData();
  }
```
2023-06-01 19:35:03 +12:00
robin.bygrave 4db1925328 No functional change, change use of BeanProperty.value() to BeanProperty.getValue()
Noting that value() currently calls through to getValue() hence
this is no real change. This is done because value() is also
a public method Property.value() [and this should probably
change to use getValueIntercept() rather than getValue()]
2023-05-17 15:31:52 +12:00
robin.bygrave 742f3b6dc4 ENH: Add captureMicros and whenCaptured to MetaQueryPlan
- captureMicros is the time taken to capture the specific query plan
- whenCaptured is the time when the bind values were taken

The DefaultQueryPlanListener logging will include these in the
output it logs
2023-05-16 13:47:27 +12:00
Jonas Pöhler 7ee0610db1 ADD: Test for reproducing NPE with lazyloaing in findEach under HeapPressure
(cherry picked from commit 96f071e08b)
2023-05-05 09:57:43 +02:00
Rob BygraveandGitHub 95fbdf37c6 Merge pull request #3021 from ebean-orm/feature/3020-forUpdateRefresh
#3020 Query.forUpdate() works like REFRESH
2023-04-06 14:11:43 +12:00
Rob BygraveandGitHub 1d09c0864d Merge pull request #3019 from ebean-orm/refactor/method-names-ObjectGraphOrigin
Refactor rename getters to accessors for ObjectGraphOrigin etc
2023-04-06 14:11:23 +12:00
Rob Bygrave 1daad7af06 #3020 Query.forUpdate() works like REFRESH
Query.forUpdate() will load data into beans existing in the persistence context.
In discussion the thinking is that we can think of this as a bug fix.
2023-04-01 13:24:37 +13:00
Rob Bygrave e51d6984fe Refactor rename getters to accessors for BeanCollection, EntityBeanIntercept etc 2023-03-31 10:42:21 +13:00
Rob Bygrave c2777b0e27 Refactor rename getters to accessors for ObjectGraphOrigin etc 2023-03-30 23:58:22 +13:00
Rob Bygrave 55d7eb55d2 Add support for dynamic formula with includes
e.g.

DB.find(ChildPerson.class)
  .select("name, coalesce(someBean, parent.someBean) as effectiveBean") // include parent
  .findList();
2023-03-25 15:49:17 +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 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 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 Bygrave 184b82e1b2 Fix test TestRawSqlQuerySelect for SqlServer
The order by not supported here by SqlServer
2023-03-17 18:03:37 +13:00
Rob Bygrave 04e935acd0 #2998 - SQLServer, map java long to BIGINT for bitwise expressions 2023-03-17 17:54:25 +13:00
Rob Bygrave 142ffe925c Fix test TestRawSqlQuerySelect to support multiple databases 2023-03-16 09:06:09 +13: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 BygraveandGitHub 6d43028fba Merge pull request #2995 from ebean-orm/feature/config-isLoadModuleInfo
Change such that querybean generated class registration can be used with explicit class registration
2023-03-14 11:48:09 +13:00
Rob Bygrave efcee7e739 Improve test asserts for lazy loading element collection 2023-03-10 21:33:58 +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 e6b0306bde Fix test TestStdFunctions for Oracle which only supports 2 parameters with concat() 2023-02-25 01:06:40 +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 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 ca6171f697 Ignore TestStdFunctions.concatEq for DB2 2023-02-14 22:39:26 +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 01a0cee3c2 patch RawSql query builder, fix tests 2023-02-10 12:17:40 +01:00
Michal Buchtík f26feec3d9 Merge remote-tracking branch 'origin/master' into query_select_bugs 2023-02-10 09:33:28 +01:00
Rob Bygrave 65c76cb2c0 Fix test to support SqlServer using sequences 2023-02-10 14:22:11 +13:00
Rob Bygrave 874427dac1 Fix test to also support Postgres ANY 2023-02-10 14:19:35 +13: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 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
Michal Buchtík 09fe923770 Merge remote-tracking branch 'origin/one2many_setArraylist' into one2many_setArraylist 2023-02-05 09:28:11 +01:00
buchtajzandGitHub e6f5e42c2d Merge branch 'ebean-orm:master' into one2many_setArraylist 2023-02-05 09:25:29 +01:00
Rob Bygrave 09001e80b5 #2948 - SoftDelete entities are hard deleted on orphan removal 2023-02-02 23:02:44 +13:00
Michal Buchtík 39099bbcc9 print sql 2023-01-31 23:01:52 +01:00