Что нового
В данном разделе приведена информация о новой функциональности и возможных несовместимых изменениях в фреймворке Jmix версии 1.6. Примите их во внимание при обновлении с предыдущей версии фреймворка.
Для фреймворка 1.6 нет Studio с соответствующим номером версии. Вместо этого рекомендуется использовать последнюю доступную Studio 2.x.
Для создания новых проектов рекомендуется использовать Jmix версии 2.x. |
Обновление
Для обновления проекта на Jmix 1.6 требуется Studio 2.3 или более поздней версии, поэтому в первую очередь обновите плагин Jmix Studio. Studio 2.3 требует IntelliJ IDEA версии 2023.3 или выше. |
Перейдите к разделу Апгрейд проекта, чтобы узнать, как обновить проект с помощью Studio. Процедура автоматической миграции вносит следующие изменения в ваш проект:
-
Обновляет версию Jmix BOM, которая, в свою очередь, определяет версии всех зависимостей.
-
Обновляет версию Jmix Gradle plugin.
-
Обновляет версию Gradle wrapper до 8.0.2 в
gradle/wrapper/gradle-wrapper.properties
.
См. полный список опасных изменений, которые могут затронуть ваш проект после обновления.
Обновленные зависимости
ch.qos.logback:logback-classic:1.2.13
ch.qos.logback:logback-core:1.2.13
com.fasterxml.jackson.core:jackson-core:2.16.1
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.16.1
com.fasterxml.woodstox:woodstox-core:6.5.1
com.google.guava:guava:33.1.0-jre
com.google.gwt:gwt-dev:2.10.0
com.google.protobuf:protobuf-java:3.21.12
com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:20220608.1
com.hazelcast:hazelcast:5.3.6
com.ibm.icu:icu4j:74.2
com.jayway.jsonpath:json-path:2.9.0
com.nimbusds:nimbus-jose-jwt:9.37.3
com.nimbusds:oauth2-oidc-sdk:9.43.4
com.opencsv:opencsv:5.9
com.thoughtworks.xstream:xstream:1.4.20
commons-io:commons-io:2.15.1
net.sf.jasperreports:jasperreports-fonts:6.20.6
net.sf.jasperreports:jasperreports:6.20.6
org.apache.commons:commons-compress:1.26.0
org.apache.james:apache-mime4j-core:0.8.10
org.apache.logging.log4j:log4j-core:2.18.0
org.apache.poi:poi:5.2.5
org.apache.tika:tika-parsers:1.28.5
org.apache.tomcat.embed:tomcat-embed-core:9.0.95
org.apache.tomcat.embed:tomcat-embed-el:9.0.95
org.apache.tomcat.embed:tomcat-embed-websocket:9.0.95
org.apache.xmlgraphics:batik-*:1.17
org.apache.xmlgraphics:fop:2.8
org.apache.xmlgraphics:xmlgraphics-commons:2.8
org.docx4j:docx4j-ImportXHTML:8.3.11
org.docx4j:docx4j-JAXB-ReferenceImpl:11.3.2
org.docx4j:docx4j-export-fo:11.3.2
org.dom4j:dom4j:2.1.4
org.elasticsearch.client:elasticsearch-rest-high-level-client:7.17.24
org.freemarker:freemarker:2.3.32
org.glassfish:jakarta.el:3.0.4
org.hsqldb:hsqldb:2.7.2
org.jsoup:jsoup:1.17.2
org.postgresql:postgresql:42.7.3
org.springframework.security:spring-security-core:5.7.12
org.springframework:spring-web:5.3.39
org.springframework:spring-webmvc:5.3.39
org.springframework:spring-webflux:5.3.39
org.webjars.npm:grapesjs-blocks-basic:1.0.2'
org.webjars.npm:grapesjs-blocks-flexbox:1.0.1'
org.webjars.npm:grapesjs-custom-code:1.0.2'
org.webjars.npm:grapesjs-parser-postcss:1.0.3'
org.webjars.npm:grapesjs-plugin-ckeditor:1.0.1'
org.webjars.npm:grapesjs-plugin-forms:2.0.6'
org.webjars.npm:grapesjs-preset-newsletter:1.0.2'
org.webjars.npm:grapesjs-preset-webpage:1.0.3'
org.webjars.npm:grapesjs-style-filter:1.0.2'
org.webjars.npm:grapesjs-tabs:1.0.6'
org.webjars.npm:grapesjs-tooltip:0.1.8'
org.webjars.npm:grapesjs-tui-image-editor:1.0.2'
org.webjars.npm:grapesjs:0.21.8'
org.webjars.npm:mime-db:1.51.0'
org.webjars:jquery-ui:1.13.2
org.yaml:snakeyaml:2.2
xerces:xercesImpl:2.12.2
Новая и улучшенная функциональность
Сортировка по нескольким столбцам в DataGrid
Сортировка по нескольким столбцам в DataGrid теперь возможна, если нажать на заголовок столбца, удерживая клавишу Shift
.
GroupTable сортирует по группирующим столбцам
GroupTable теперь автоматически добавляет сортировку по группирующим столбцам. При постраничной загрузке это позволяет корректно, в соответствии с группировкой, распределить данные между страницами.
Чтобы отключить эту функцию, добавьте атрибут sortOnGroupEnabled="false"
к элементу groupTable
.
Свойства-коллекции в универсальном фильтре
Компонент Filter теперь позволяет создавать условия для свойств-коллекций (ссылок один-ко-многим).
Например, в приложении Onboarding вы можете фильтровать пользователей по свойству steps
и его вложенным свойствам: steps.dueDate
, steps.step.name
и т.д. Хранилище данных с доступом через JPA автоматически создаст соответствующий JPQL-запрос с предложением join
. Ранее этого можно было достичь только путем ручного определения условия JPQL.
Общий прогресс в FileMultiUploadField
FileMultiUploadField теперь отображает общий прогресс загрузки файлов. Это обеспечивает лучшую обратную связь для пользователей при загрузке большого количества небольших файлов.
Свойство totalProgressFormat
можно использовать для установки собственного формата сообщения общего прогресса, свойство totalProgressEnabled
- для включения или отключения отображения общего прогресса.
Опасные изменения
Flow UI удален
В прошлом году, когда мы выпустили Jmix 2.0, мы объявили, что Classic UI будет продолжать существовать в ветке Jmix 1.x, в то время как Flow UI будет включен в Jmix, начиная с версии 2.0 (см. Расширенная поддержка классического UI).
Поэтому модули Flow UI удалены из Jmix 1.6.
Если у вас есть проект на Jmix 1.5, использующий Flow UI, обновите его на последнюю версию Jmix 2.x.
Классы YARG перемещены в Reports
Движок отчетов YARG был перемещен из внешней зависимости в исходники дополнения Reports. Если вы использовали классы com.haulmont.yarg.*
в своем проекте, замените их импорты на io.jmix.reports.yarg.*
.
Ленивые мягко удаленные ссылки один-к-одному
Исправлена ленивая загрузка мягко удаленных ссылок один-к-одному. Теперь она ведет себя так же, как жадная загрузка с фетч-планами:
-
Мягко удаленные сущности загружаются через ссылки один-к-одному с владеющей стороны.
-
Мягко удаленные сущности НЕ загружаются через ссылки один-к-одному со стороны mappedBy.
Ранее поведение ленивой загрузки было противоположным.
Для получения более подробной информации см. #2466.