8077 Commits
Author SHA1 Message Date
robin.bygrave a96144cdaa Docs: Adjust setup guide with initial DI / no DI question 2026-05-01 16:03:11 +12:00
robin.bygrave 50e20c3aa0 Docs: update docs / skills location to separate git repo 2026-05-01 15:38:37 +12:00
robin.bygrave f07ca68eb3 Docs: Add docs/skill/ebean-orm 2026-05-01 15:09:54 +12:00
robin.bygrave 0ec7ddb82d Docs: Change the ordering so that test container setup proceeds the main database configuration 2026-05-01 14:59:36 +12:00
robin.bygrave 8074a24d03 Docs: Improve docs with DB -> database and wording around getters/setters/accessors 2026-05-01 14:52:43 +12:00
Rob Bygrave 7e4a2db9aa Add Query alsoIfPresent() as helper for Nullable conditional expressions (#3756)
Add this as a helper for when using alsoIf(BooleanPredicate) seems overkill
and there isn't a built in IfPresent option for the desired expression and
wanting to keep the fluid style.
2026-04-28 23:24:50 +12:00
Rob Bygrave 292dcf4b0e Add IfPresent options for like, ilike, startsWith, istartsWith, contains, icontains (#3755) 2026-04-28 23:06:57 +12:00
robin.bygrave f44bf59cb6 Docs: Improve testing-with-testentitybuilder.md - better wiring example 2026-04-24 17:52:44 +12:00
robin.bygrave 7c3741e258 Docs: Add llms.txt to assist agents
Note that this is effectively a duplication of the website llms.txt
2026-04-24 10:18:00 +12:00
robin.bygrave afadaa7208 Docs: Add a template AGENTS.md to assist agent onboarding 2026-04-24 09:32:37 +12:00
Rob Bygraveandrobin.bygrave 46b7510e6c TestEntityBuilder - add saveAll() helper method (#3751)
Co-authored-by: robin.bygrave <robin.bygrave@eroad.com>
2026-04-22 15:10:04 +12:00
Rob Bygrave bcb0b049ff Tests for Oracle, drop pstmtCache to 100
The default was bumped to 300. Seeing ORA-01000: maximum open cursors exceeded
in the Oracle integration test so thinking it is due to the increase in
default preparedStatement cache.
2026-04-22 00:15:25 +12:00
Rob Bygrave 42bfaaf2bf Tests for Oracle, drop pstmtCache to 100
The default was bumped to 300. Seeing ORA-01000: maximum open cursors exceeded
in the Oracle integration test so thinking it is due to the increase in
default preparedStatement cache.
2026-04-22 00:14:20 +12:00
Rob Bygrave 2ca39f1419 Fix test TestErrorBindLog for DB2 2026-04-22 00:03:22 +12:00
Rob Bygrave de2914e550 Fix test TestQueryJoinOnFormula for Postgres distinct on 2026-04-22 00:00:53 +12:00
robin.bygrave 6eda7044a0 Docs: Improve testing-with-testentitybuilder.md 2026-04-21 13:01:18 +12:00
robin.bygrave e4adf25022 Docs: Improve testing-with-testentitybuilder.md 2026-04-20 15:49:44 +12:00
robin.bygrave ad5483100e Improve README.md with reference to llms.txt 2026-04-20 14:55:01 +12:00
robin.bygrave 6d9ed670ef Docs: Improve doc guides wording 2026-04-16 16:48:27 +12:00
robin.bygrave 9e2d821475 Docs: Add LIBRARY.md 2026-04-16 13:53:22 +12:00
Rob Bygrave 80ce7a41a2 Docs: guides - improve writing query beans guide 2026-04-14 00:46:37 +12:00
Rob Bygrave 6458bb0f1c Docs: Add docs / guides for writing queries and using transactions 2026-04-14 00:34:21 +12:00
Rob Bygrave 7ba550cc0d Docs: Add docs / guides for ebean entity bean recommendations 2026-04-12 23:49:41 +12:00
Rob Bygrave fff8dfb8b1 Docs: Add docs / guides for ebean entity bean recommendations 2026-04-12 23:43:54 +12:00
Rob Bygrave d0af7b1788 Docs: Add docs / guides for testing with TestEntityBuilder 2026-04-12 22:51:51 +12:00
Rob Bygrave ebb0305cf3 Version 16.5.0 16.5.0 2026-04-12 22:31:24 +12:00
Rob Bygrave d03d36bba4 Update ebean-agent 2026-04-12 22:27:52 +12:00
Rob Bygrave 88408edd24 Bump ebean-datasource dependency to 10.5 with increase default prepared statement cache (#3749)
Default prepared statement cache increased from 100 to 300. This could have the
effect of increased memory consumption for applications traded off with potentially
improved performance due to me cached prepared statements for larger applications.

Note that the Postgres itself has a default of 250.
2026-04-12 22:27:02 +12:00
Rob Bygrave 0aad35b840 Merge branch 'master' of github.com:ebean-orm/ebean 2026-04-12 17:21:04 +12:00
Rob Bygrave e7979b285d Docs: docs / guides - add reference link to ebean-datasource guides 2026-04-12 17:20:45 +12:00
Roland Praml 91920b00dc M2M on child path produce wrong query on extra join (#3653)
* Testcase for ManyToMany with extra join

* Fix query generation for extra ManyToMany joins

* Fix other tests due different query
2026-04-12 15:07:08 +12:00
Rob Bygrave bdfe016d2d Refactor DLoadBeanContext extract helper method ensureBatchInContext() 2026-04-12 15:02:07 +12:00
Rob BygraveandRoland Praml b2670f9cc0 Lazy load pre delete 2 (#3748)
* Lazy load in pre-delete does not work

* Re-add deleted beans before lazy-load will happen

* Put the contextClear() calls into a finally

This should mean that any beans put into the context would be
cleared even if there was an issue with the loadBean() call.

---------

Co-authored-by: Roland Praml <roland.praml@foconis.de>
2026-04-12 15:00:28 +12:00
dsa-ferreiraandRob Bygrave ebc90e0e82 FEATURE: Add support for Generic mapped superclass (#3692)
* creates support for generics in mapped superclasses

* Changes DeployCreateProperties to allow processing of inheritance hierarchies with generics

* adds tests for ebean-querybean

* bumps querybean-generator version

* fixes tests by changing table names for ProductWithGenericLong and ProductWithGenericString

* Restore format, this reduces the diff

* Restore format, this reduces the diff

---------

Co-authored-by: Rob Bygrave <robin.bygrave@gmail.com>
2026-04-12 13:31:49 +12:00
Rob Bygrave c4230c780f Add usingMaster() to SqlQuery.TypeQuery (#3744) 2026-04-12 12:49:39 +12:00
Rob Bygrave 794f933310 Feat: Add test entity builder, ease creation of test entity instances populated with random values (#3747)
* Docs: modify guides README with links to the available guides

* Add TestEntityBuilder for building test entity instances populated by random values

* Improve TestEntityBuilder for emails, BigDecimal precision/scale, protected method allow overriding

* Improve TestEntityBuilder for emails, use PersonOther
2026-04-12 12:46:49 +12:00
AntoineDuComptoirDesPharmacies c8a7a263a9 #3129 (#3746)
This Pull Request aim to fix the problem of DBJSONB dirty detection listed in #3129 which was due to PostgreSQL JSONB key reordering while storing value.
This cause Ebean to mark @DbJsonB properties as dirty on every load (triggering unnecessary UPDATEs and version increments) because the raw DB JSON key order differed from Jackson's serialization order.
Currently, Ebean is using CRC32 Checksum to compare but it is field ordering-dependent.

Introduce JsonContentHash:
A streaming order-independent structural hash of JSON content using Jackson's JsonParser.
Object keys are combined with commutative addition (a + b == b + a) so key ordering does not affect the hash, while array elements use positional hashing to preserve semantic ordering.
The hash uses FNV-1a for strings and MurmurHash3's fmix64 finalizer (both public domain) for mixing, producing a 64-bit hash with strong avalanche properties.

Changes:
- Add JsonContentHash utility (streaming, zero allocation, O(n) time)
- SourceMutableValue: use fast string equality with canonical hash fallback
- ChecksumMutableValue: replace CRC32 with JsonContentHash (also upgrades collision resistance from 2^32 to 2^64)
- No API changes, no schema changes, readSet() untouched
2026-04-12 12:46:13 +12:00
robin.bygrave aeef6d0ea2 Docs: modify guides README with snippets devs should copy n paste into their README etc to help guide the AI agents to the appropriate ebean guides 2026-04-11 01:25:23 +12:00
robin.bygrave a99aef8b00 Docs: modify guides section, add initialConnections with explanation 2026-04-11 01:09:30 +12:00
robin.bygrave 6f17cc6327 Docs: Add docs / guides for adding db migration generation 2026-04-11 01:00:08 +12:00
robin.bygrave 903947b3cb Docs: Add docs / guides for lombok use 2026-04-11 00:24:27 +12:00
robin.bygrave 797f75f7b7 Docs: Add docs / guides for postgres test container setup 2026-04-11 00:07:45 +12:00
Rob Bygrave af443ef2f2 Merge pull request #3745 from ebean-orm/docs/guides-one
Docs: Add docs / guides for step-by-step instructions for AI agents
2026-04-10 23:42:33 +12:00
robin.bygrave ad4f027835 Docs: Add docs / guides for step-by-step instructions for AI agents 2026-04-10 23:42:05 +12:00
Rob Bygrave 367eba8685 Version 16.4.0 16.4.0 2026-04-10 08:03:12 +12:00
Rob Bygrave be542635a5 Bump ebean-test-containers to 8.0 (major bump to mark the port fix) (#3742)
Docker changed and that broke how ebean-test-containers detected the
currently assigned port for a container. That was fixed in 7.18 but
thinking its a good idea to mark that relatively important bug fix
with a bump of the major version to 8.0.

Everyone using ebean-test-containers should consider updating the
ebean-test-containers dependency to 8.0 or 7.18 (both have the fix).
2026-04-10 08:00:04 +12:00
Rob Bygrave 6e9d0a91e0 Fix for @Column on timestamp defined as timestamp(255) (#3740)
As per https://github.com/ebean-orm/ebean/discussions/3720

```
  @Column
  ZonedDateTime zonedDateTime2;
```
... resulting in DDL generated as `timestamp(255)`. This is
occurring when the JPA dependency is used like:
jakarta.persistence:jakarta.persistence-api:3.2.0
rather than using the transitive dependency that ebean includes.

Workaround:
Remove the jakarta.persistence:jakarta.persistence-api:3.2.0 dependency.

Fix:
The fix here is to use a timestamp type that has a maximum precision.
When a precision/length is specified greater than the maximum precision
then the fallback type is used which is `timestamp` without any precision.
2026-04-10 00:46:34 +12:00
Rob Bygrave a99ef3ebf2 Bump ebean-datasource dependency to 10.4, resets metrics on initialisation (#3739) 2026-04-09 22:23:55 +12:00
Andrey GlushkovandRob Bygrave 19afa845d1 FEATURE: inTuples() expressions support for natural key cache lookup (#3732)
* `inTuples()` support for natural key cache lookup

* Simplify NaturalKeyEntryBasic.addInPairs()

---------

Co-authored-by: Rob Bygrave <robin.bygrave@gmail.com>
2026-04-09 19:46:33 +12:00
Rob Bygrave 239900cd3b Bump ebean-agent to 16.4.0 with support for Java 26 (#3738) 2026-04-09 19:15:36 +12:00