This is an automated email from the ASF dual-hosted git repository. ntimofeev pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cayenne-website.git
The following commit(s) were added to refs/heads/master by this push: new 52281b71a Cayenne 5.0-M1 release - news 52281b71a is described below commit 52281b71abe52ff4a7b755bccf1452903579df4b Author: Nikita Timofeev <stari...@gmail.com> AuthorDate: Tue Sep 10 14:14:31 2024 +0400 Cayenne 5.0-M1 release - news --- src/main/site/content/news/cayenne-50m1-released.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/site/content/news/cayenne-50m1-released.md b/src/main/site/content/news/cayenne-50m1-released.md index 22d4f1474..6cc4d91bf 100644 --- a/src/main/site/content/news/cayenne-50m1-released.md +++ b/src/main/site/content/news/cayenne-50m1-released.md @@ -4,13 +4,13 @@ date: 2024-09-09T12:00:00+03:00 --- Apache Cayenne development team is glad to announce the first milestone of a new major version of Cayenne. -New version can be downloaded from [here](/download.html). +The latest version can be downloaded from [here](/download.html). ### Incompatible changes Apache Cayenne 5.0-M1 removes support for a multi-layered stack, so no more Cayenne RoP and all the related client parts. -Moreover, this release renames every part that contained `server` in its name, and that includes main library. -So from now on, this is how dropping Cayenne to you project would look like: +Moreover, this release renames every part that contains `server` in its name, including the main library. +So from now on, this is how dropping Cayenne into your project would look like: ```xml <dependency> @@ -33,11 +33,16 @@ For more details about incompatible changes and deprecations, please consult [up #### Java Version -Minimum required Java version is now 11, so no more support for the Java 8. +The minimum required Java version is now 11, Java 8 is no longer supported. + +#### New Dev Versioning Scheme + +From now on a snapshot version of Cayenne is a constant value, so the dev version of 5.0 will always be 5.0-SNAPSHOT. So you can always stay at the bleeding edge of development if needed. #### New Class Generation UI: -New UI simplifies configuration, allows multiple `cgen` setups per project, and includes template editor. +The new Class Generation UI in the Cayenne Modeler simplifies configuration, allows multiple `cgen` setups per project, +and includes a template editor. <p style="text-align: center;"> <img class="img-fluid" style="max-width: 70%;" src="/img/cayenne-5.0-m1-cgen.png" alt="Cayenne Modeler 5.0-M1 Class Generation"/> @@ -45,6 +50,9 @@ New UI simplifies configuration, allows multiple `cgen` setups per project, and #### Better support for the `(not)exists` queries: +In most cases, you don’t need to deal with a subquery for `(not)exists` queries, as it is now directly supported by the Expression API. +That includes `Expression`, expression parser, and Property API. + ```java long count = ObjectSelect.query(Artist.class) .where(Artist.PAINTING_ARRAY.dot(Painting.PAINTING_TITLE).like("painting%").exists()) @@ -55,6 +63,7 @@ long count = ObjectSelect.query(Artist.class) `ANY` and `ALL` subqueries are now supported, as well as `case-when` expressions. +**NOTE**: `case-when` is a bit experimental, and implementation could change. <div class="pb-3"><!-- gap 2rem --></div>