Robin Bygrave
0527f45f5a
For experimental "transparent persistence" - Inserts added to PC
...
When inserting bean with transparent persistence the beans are registered with the persistence context. This is done to support the cases where the beans are inserted, a flush() occurs, the inserted bean is mutated and now dirty - we want that to be detected and get an update
2021-04-01 16:59:03 +13:00
Robin Bygrave
ba397bbb0c
For experimental "transparent persistence" - Delete removes from PC early
...
When delete bean executed with transparent persistence, this marks the bean as removed from the persistence context early.
This avoids a "dirty" deleted bean from being seen as a "dirty" bean in the persistence context at flush() time.
2021-04-01 16:04:18 +13:00
Robin Bygrave
a617d58902
Initial experimental support for "transparent persistence"
...
In short, when this is turned on at flush() get any dirty beans held by the PersistenceContext and persist them (always update for these beans)
2021-04-01 14:47:54 +13:00
Robin Bygrave
f53d31aa2e
No functional change - final field for BatchControl
2021-04-01 12:22:45 +13:00
Robin Bygrave
a8bf27da55
#2211 - Improve query plan capture - Align config property names
...
collectQueryPlans -> queryPlanEnable
collectQueryPlanThresholdMicros -> queryPlanThresholdMicros
properties keys:
ebean.collectQueryPlans -> ebean.queryPlan.enable
ebean.collectQueryPlanThresholdMicros -> ebean.queryPlan.thresholdMicros
This then aligns all the queryPlan related properties together which is important in order to avoid confusion.
2021-03-30 23:44:30 +13:00
Robin Bygrave
ee8bb5ef75
#2211 - Improve query plan capture - Add default mechanism to log captured query plans
2021-03-30 23:19:21 +13:00
Robin Bygrave
bcfd9cab1d
#2210 - Improve query plan capture - bump threshold multiplier to 1.5
2021-03-30 16:05:42 +13:00
Robin Bygrave
2a5fd7f3a9
#2210 - Improve query plan capture - ability to change default threshold micros
2021-03-30 16:02:27 +13:00
Robin Bygrave
f8c37772d4
Tidy internals of DefaultServer with @Nonnull, <>, Collections.singleton(), remove unused queryBatchSize
2021-03-30 10:23:28 +13:00
rob bygrave
5cb9b9b237
#2208 - When using fetchCache() with a single id / findOne ... doesn't hit L2 cache
...
Plus #2207 ENH: Query beans add support for nested FetchGroup
2021-03-29 23:21:07 +13:00
Rob Bygrave and GitHub
e68adf53bc
Merge pull request #2204 from ebean-orm/feature/Honor-setLazyLoadBatchSize
...
Honor setLazyLoadBatchSize() when using FetchConfig.ofLazy() of unspecified size
2021-03-23 23:25:08 +13:00
Robin Bygrave
562d175de1
With FetchConfig.ofLazy() honor query.setLazyLoadBatchSize()
...
Use 0 for default lazy batch such that it honors a value set via query.setLazyLoadBatchSize()
2021-03-23 23:17:07 +13:00
Robin Bygrave
b5cef354ad
Refactor simplify LoadContext.getSecondaryQueriesMinBatchSize()
...
No functional change here. Just move the constant into DLoadContext.
2021-03-23 14:53:30 +13:00
Rob Bygrave
78965c1ac4
#2203 - Support use of Java Record type with @Entity, @Embeddable @IdClass
...
Allow java.lang.Record to be a root level parent for entity beans etc
2021-03-22 23:43:35 +13:00
Robin Bygrave
e40a539406
#2200 - ENH: Add DtoQuery findEach with batch consumer - findEach(int batchSize, Consumer<List<T>> consumer)
2021-03-18 17:02:41 +13:00
Robin Bygrave
bb73c30bb7
#2199 - ScalarTypeWrapper doesn't handle "nullValue" correctly
...
Fix for - standard JPA AttributeConverter which doesn't have the getNullValue method, he/she can't convert null to a custom null object
AttributeConverterAdapter probes the AttributeConverter for the nullValue rather than just assuming it is null.
2021-03-18 16:14:46 +13:00
Robin Bygrave
2e16f05a70
#2199 - ScalarTypeWrapper doesn't handle "nullValue" correctly
...
Handles the case for ScalarTypeConverter with custom null value and binding the custom null value (via query parameter, CallableSql parameter etc)
2021-03-18 10:03:35 +13:00
Robin Bygrave
1837c3443d
#2186 - Invalid generated table and column names of @ManyToMany relation with allQuotedIdentifiers=true
2021-03-17 21:02:59 +13:00
Robin Bygrave
c2a87a0c88
#2196 - SQLException:Column "T0.ID" must be in the GROUP BY list - when findCount with having clause
2021-03-15 22:43:25 +13:00
Robin Bygrave
733886c70b
#2195 - @Aggregation on OneToMany property not mapping to column properly
2021-03-15 22:03:14 +13:00
Rob Bygrave and GitHub
d75d1fce43
Change ModuleInfoLoader API and querybean-generator for named default database ( #2190 )
...
Currently we can not use @DbName with the entities of the default database. With this change the generated code that registers entity classes will support using @DbName with the default database.
2021-03-11 20:42:25 +13:00
Rob Bygrave
2bb5a85bd6
ENH: Add Query findEach() with batch consumer
...
This is a variation of findEach() that makes it easy to have a batch consumer processing a large result in batches. For example, process in batches of 50 beans.
Note that the last batch consumed/processed will often have less than the batch size.
2021-03-10 00:18:35 +13:00
Robin Bygrave
c86f965d36
#2187 - Improve error message thrown when @JoinTable @JoinColumn not satisfied.
...
Added " or a @JoinColumn needs an explicit referencedColumnName specified?";
2021-03-04 08:55:11 +13:00
Robin Bygrave
81e445e386
#2184 - Fix for findNative() with fetch() - convert fetch to fetchQuery with nativeSql
...
When using nativeSql (think of it as the "root query") we can't use "fetch joins" (FetchConfig.ofDefault()) as that means to prefer to use a SQL JOIN. In this nativeSql case we need to effectively automatically convert fetch() to fetchQuery()
2021-03-02 15:47:07 +13:00
Robin Bygrave
fe62ad2ea2
#2184 - Initial refactor of DefaultOrmQuery to support 2184
...
- Add fetchInternal() and point fetchQuery() fetchLazy() and fetchCache() to it
- Move the fetch() methods so they are located together
2021-03-02 15:28:17 +13:00
Robin Bygrave
f416309863
No effective change - change DefaultOrmQuery methods to return Query<T> rather than DefaultOrmQuery<T>
...
This is no effective functional change but we do need to update the test OrmQueryPlanKeyTest to cast now.
2021-03-02 14:44:54 +13:00
Robin Bygrave
6315edfc21
#2177 - findNative not mapping bean when schema specified in entity mapping
2021-03-01 22:08:17 +13:00
Robin Bygrave
eacfaf3403
No effective change - refactor tidy SqlTreeNodeBean
2021-03-01 21:19:25 +13:00
Robin Bygrave
297c1d7abb
#2179 - Improved fix for (2179) Fetch on nested one-to-many collections results in duplicates
...
The improvement here is that SqlTreeNodeManyRoot uses load and isContextBean() so that it only checks if the collection already contains the detailBean if the detailBean was already in the persistence context (aka not newly loaded and added). The vast majority case is that detailBean is loaded fresh so for the common case we can skip the extra collection contains() check.
2021-03-01 20:27:50 +13:00
Robin Bygrave
5a73c85e6e
Refactor internals - SqlTreeNodeBean add derived readIdNormal + private methods
...
This is no effective change
2021-03-01 18:36:49 +13:00
Robin Bygrave
68138bc009
Refactor internals no effective change - reorder methods of SqlTreeNodeManyRoot
2021-03-01 17:45:52 +13:00
Robin Bygrave
8c7df3212a
Refactor internals add SqlTreeRoot as follow up to #2179
...
Adds SqlTreeRoot interface to make it more explicit that SqlTreeNodeRoot is the only valid top level node in the sql tree (and as such has the root level load() method)
2021-03-01 17:44:13 +13:00
Robin Bygrave
6acf93c978
#2178 - Fix for duplicate instances added to collection for nested one-to-many fetch
...
This is an initial fix for this case.
2021-03-01 13:38:40 +13:00
Rob Bygrave and GitHub
6aa4337b27
#2174 - Entity beans with @Cache + @DbArray of enums (or UUID or Integer) not converted to enums (come back as String) ( #2175 )
2021-02-19 22:42:48 +13:00
Rob Bygrave and GitHub
b4ae721998
#2169 Refactor after #2170 tidy javax/jakarta validation annotation reading ( #2171 )
...
Introduces ReadValidationAnnotations with javax and jakarta implementations and moves the validation annotation reading there
2021-02-17 22:23:07 +13:00
André Camilo and GitHub
3bb4126e26
#2169 Support for jakarta.validation.constraints.NotNull and ( #2170 )
...
jakarta.validation.constraints.Size
2021-02-17 18:04:43 +13:00
robin
de439e7695
Improve Refactor internals OrmQueryProperties invert isEmpty()
...
Rename to hasProperties() and improve javadoc
2021-02-16 23:20:44 +13:00
robin
e5ec72df5c
Refactor internals OrmQueryProperties invert isEmpty() -> nonEmpty()
2021-02-16 20:37:58 +13:00
Rob Bygrave and GitHub
98a89156bf
Refactor query internals to reduce property parsing for partial select and fetch ( #2167 )
...
* Update test only - update TestBasicClobNoVer to use DB and AssertJ
* Refactor OrmQueryProperties internals to reduce raw property parsing
- Remove String properties
- Reduces parsing of properties via fetchProperties() selectProperties() methods
* No effective change - tidy pom.xml for ebean-querybean
* Refactor query internals adding fetchProperties() selectProperties()
- Adds SpiQueryFetch
- Used by query beans with Set<String> properties passed (effectively skipping any parsing)
2021-02-16 17:51:47 +13:00
rob bygrave
ab87174e5b
#2163 - Fix OrmQueryProperties when FetchConfig null
2021-02-14 11:30:24 +13:00
Rob Bygrave and GitHub
a6fdc42934
Remove support for "query hints" like +query(50) ( #2163 )
...
* Remove support for "query hints" like +query(50)
* Remove unused readOnly from OrmQueryProperties
* OrmQueryProperties cache as final field
2021-02-14 11:21:10 +13:00
rob bygrave
4c16b85e85
#2166 - Remove deprecated forUpdate(lockType) methods - migrate to withLock(lockType, waitType)
2021-02-14 10:52:18 +13:00
rob bygrave
9e3d6c6a08
#2165 - Joda LocalDate West of UTC converts incorrectly (Fix: change from epoc millis conversion to y/m/d conversion)
2021-02-14 10:28:55 +13:00
Rob Bygrave and GitHub
d567872813
Deprecate the mutating methods of FetchConfig to migrate to the static factory methods ( #2164 )
...
e.g. migrate from -> to use
new FetchConfig().query() -> FetchConfig.ofQuery()
new FetchConfig().query(50) -> FetchConfig.ofQuery(50)
2021-02-13 14:50:02 +13:00
rob bygrave
f1a48b182e
Refactor FetchConfig
2021-02-13 12:10:21 +13:00
Rob Bygrave and GitHub
8ac5467856
Improve internal calculation of orm query plan hash key (Require use of inline hints like +query(50) to be comma delimited with properties) ( #2159 )
...
* WIP Tidy DefaultOrmQuery planDescription()
* WIP Tidy DefaultOrmQuery planDescription()
* Refactor OrmQueryPropertiesParser with hints requiring comma delimiting (previously didn't)
* Refactor OrmQueryPropertiesParser (reuse inputProperties) and DRawSqlColumnsParser (to return Set)
* Refactor OrmQueryPropertiesParser - remove JunkMain
* Refactor OrmQueryDetail, OrmQueryProperties - properties
2021-02-13 11:58:00 +13:00
rob bygrave
b56d68dac7
#2157 - ManyToMany mapping to itself results in broken generated SQL DDL when not defining @JoinTable.
2021-02-12 22:17:04 +13:00
rob bygrave
e0c3a92b60
Refactor FetchConfig
2021-02-12 21:01:57 +13:00
Rob Bygrave and GitHub
d3a09b93c0
#2156 - Using @OneToOne(targetEntity...) with Interface field results in BeanNotRegisteredException ( #2160 )
2021-02-12 16:30:28 +13:00
Robin Bygrave
ac1dd4cbab
#2158 Refactor to use try with resources with Connection for platform selection via jdbc metaData
2021-02-11 17:28:05 +13:00