generator-jhipster 7.6.0 → 7.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -4
- package/cli/commands.js +3 -0
- package/cli/environment-builder.js +53 -18
- package/cli/import-jdl.js +3 -0
- package/cli/index.mjs +20 -0
- package/cli/jhipster.js +19 -11
- package/cli/program.js +94 -38
- package/generators/app/esm.mjs +1 -3
- package/generators/app/index.js +11 -16
- package/generators/aws/esm.mjs +1 -3
- package/generators/azure-app-service/esm.mjs +1 -3
- package/generators/azure-spring-cloud/esm.mjs +1 -3
- package/generators/base/esm.mjs +1 -3
- package/generators/bootstrap/esm.mjs +1 -3
- package/generators/bootstrap/index.js +36 -86
- package/generators/bootstrap-application/esm.mjs +19 -0
- package/generators/bootstrap-application/generator.mjs +353 -0
- package/generators/bootstrap-application/index.mjs +19 -0
- package/generators/ci-cd/esm.mjs +1 -3
- package/generators/ci-cd/index.js +1 -1
- package/generators/ci-cd/prompts.js +1 -1
- package/generators/ci-cd/templates/github-actions.yml.ejs +6 -6
- package/generators/client/esm.mjs +5 -3
- package/generators/client/files-angular.js +9 -0
- package/generators/client/files-common.js +9 -9
- package/generators/client/files-react.js +25 -2
- package/generators/client/files-vue.js +7 -6
- package/generators/client/index.js +3 -2
- package/generators/client/needle-api/needle-client-react.js +11 -8
- package/generators/client/templates/angular/angular.json.ejs +2 -10
- package/generators/client/templates/angular/jest.conf.js.ejs +1 -1
- package/generators/client/templates/angular/package.json +29 -27
- package/generators/client/templates/angular/package.json.ejs +6 -2
- package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.html.ejs +7 -7
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +3 -3
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.html.ejs +10 -10
- package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.html.ejs +8 -8
- package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +6 -6
- package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.html.ejs +51 -49
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +16 -16
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +32 -32
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +18 -18
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +12 -12
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +8 -8
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +11 -11
- package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +4 -2
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.scss.ejs +0 -6
- package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.scss.ejs +0 -6
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.html.ejs +3 -3
- package/generators/client/templates/angular/src/main/webapp/content/scss/_bootstrap-variables.scss.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/content/scss/global.scss.ejs +29 -0
- package/generators/client/templates/angular/src/main/webapp/content/scss/vendor.scss.ejs +0 -4
- package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +31 -1
- package/generators/client/templates/common/package.json +7 -6
- package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +1 -7
- package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +2 -3
- package/generators/client/templates/react/.eslintrc.json.ejs +1 -1
- package/generators/client/templates/react/jest.conf.js.ejs +1 -1
- package/generators/client/templates/react/package.json +44 -45
- package/generators/client/templates/react/package.json.ejs +1 -0
- package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/config/store.ts.ejs +53 -6
- package/generators/client/templates/react/src/main/webapp/app/config/translation-middleware.ts.ejs +58 -0
- package/generators/client/templates/react/src/main/webapp/app/entities/menu.tsx.ejs +45 -0
- package/generators/client/templates/react/src/main/webapp/app/entities/reducers.ts.ejs +25 -0
- package/generators/client/templates/react/src/main/webapp/app/entities/routes.tsx.ejs +47 -0
- package/generators/client/templates/react/src/main/webapp/app/index.tsx.ejs +7 -7
- package/generators/client/templates/react/src/main/webapp/app/main.tsx.ejs +19 -0
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/logs/logs.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +2 -1
- package/generators/client/templates/react/src/main/webapp/app/modules/login/login-modal.tsx.ejs +5 -1
- package/generators/client/templates/react/src/main/webapp/app/routes.tsx.ejs +24 -7
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-loading.tsx.ejs +15 -0
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/entities.tsx.ejs +34 -6
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/index.ts.ejs +9 -2
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.spec.ts.ejs +9 -3
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.ts.ejs +21 -5
- package/generators/client/templates/react/src/main/webapp/app/typings.d.ts.ejs +15 -0
- package/generators/client/templates/react/src/main/webapp/microfrontends/entities-menu.tsx.ejs +3 -0
- package/generators/client/templates/react/src/main/webapp/microfrontends/entities-routes.tsx.ejs +3 -0
- package/generators/client/templates/react/tsconfig.json.ejs +3 -3
- package/generators/client/templates/react/tsconfig.test.json.ejs +9 -1
- package/generators/client/templates/react/webpack/webpack.common.js.ejs +6 -13
- package/generators/client/templates/react/webpack/webpack.dev.js.ejs +7 -8
- package/generators/client/templates/react/webpack/webpack.microfrontend.js.jhi.react.ejs +99 -0
- package/generators/client/templates/react/webpack/webpack.prod.js.ejs +31 -21
- package/generators/client/templates/vue/package.json +30 -31
- package/generators/client/templates/vue/package.json.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +4 -3
- package/generators/client/templates/vue/src/main/webapp/app/entities/user/user.service.ts.ejs +0 -0
- package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +29 -1
- package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +2 -2
- package/generators/client/templates/vue/src/main/webapp/app/shared/config/config.ts.ejs +0 -4
- package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +1 -1
- package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +2 -2
- package/generators/client/templates/vue/tsconfig.json.ejs +0 -3
- package/generators/client/templates/vue/webpack/webpack.common.js.ejs +6 -2
- package/generators/cloudfoundry/esm.mjs +1 -3
- package/generators/common/esm.mjs +2 -3
- package/generators/common/files.js +1 -2
- package/generators/common/index.js +6 -0
- package/generators/common/templates/.husky/{pre-commit → pre-commit.ejs} +4 -0
- package/generators/common/templates/README.md.jhi.ejs +3 -1
- package/generators/common/templates/package.json +4 -4
- package/generators/common/templates/sonar-project.properties.ejs +1 -1
- package/generators/cypress/esm.mjs +2 -3
- package/generators/cypress/files.js +2 -1
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +18 -14
- package/generators/database-changelog/esm.mjs +1 -3
- package/generators/database-changelog/index.js +1 -1
- package/generators/database-changelog-liquibase/esm.mjs +2 -3
- package/generators/docker-compose/esm.mjs +1 -3
- package/generators/docker-compose/index.js +9 -5
- package/generators/entities/esm.mjs +1 -3
- package/generators/entities/index.js +2 -2
- package/generators/entities-client/esm.mjs +1 -3
- package/generators/entity/esm.mjs +1 -3
- package/generators/entity/index.js +39 -28
- package/generators/entity/prompts.js +4 -1
- package/generators/entity-client/esm.mjs +2 -3
- package/generators/entity-client/index.js +8 -0
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.html.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +2 -2
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +20 -21
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +14 -16
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +3 -3
- package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +2 -1
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +3 -3
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-detail.tsx.ejs +5 -4
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-reducer.spec.ts.ejs +1 -1
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +20 -19
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.reducer.ts.ejs +2 -2
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +21 -20
- package/generators/entity-client/templates/react/src/test/javascript/e2e/entities/entity-update-page-object.ts.ejs +1 -1
- package/generators/entity-client/templates/vue/src/test/javascript/e2e/entities/entity-update-page-object.ts.ejs +1 -1
- package/generators/entity-client/templates/vue/src/test/javascript/e2e/entities/entity.spec.ts.ejs +1 -1
- package/generators/entity-i18n/esm.mjs +2 -3
- package/generators/entity-i18n/templates/i18n/entity_fr.json.ejs +1 -1
- package/generators/entity-server/esm.mjs +2 -3
- package/generators/entity-server/files-couchbase.js +23 -2
- package/generators/entity-server/files.js +40 -6
- package/generators/entity-server/index.js +27 -2
- package/generators/entity-server/templates/couchbase/src/main/java/package/domain/Entity.java.jhi.spring_data_couchbase.ejs +11 -13
- package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +30 -43
- package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.fts.ejs +5 -6
- package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.n1ql.ejs +5 -0
- package/generators/entity-server/templates/partials/it_patch_update.partial.java.ejs +2 -2
- package/generators/entity-server/templates/partials/save_template.ejs +1 -1
- package/generators/entity-server/templates/partials/update_template.ejs +77 -0
- package/generators/entity-server/templates/reactive/partials/save_template.ejs +1 -1
- package/generators/entity-server/templates/reactive/partials/update_template.ejs +41 -0
- package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +5 -5
- package/generators/entity-server/templates/src/main/java/package/common/get_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/common/inject_template.ejs +17 -8
- package/generators/entity-server/templates/src/main/java/package/common/patch_template.ejs +5 -5
- package/generators/entity-server/templates/src/main/java/package/common/search_stream_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +4 -3
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.javax_lifecycle_events.ejs +31 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_persistable.ejs +54 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_reactive.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/domain/EntityCallback.java.ejs +43 -0
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +36 -23
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +24 -28
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationships.java.ejs +37 -0
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationshipsImpl.java.ejs +91 -0
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +17 -25
- package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +3 -3
- package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +12 -27
- package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +10 -2
- package/generators/entity-server/templates/src/main/java/package/service/criteria/EntityCriteria.java.ejs +8 -6
- package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +21 -5
- package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +61 -90
- package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +6 -4
- package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +33 -20
- package/generators/export-jdl/esm.mjs +1 -3
- package/generators/gae/esm.mjs +1 -3
- package/generators/generate-blueprint/constants.mjs +146 -0
- package/generators/generate-blueprint/esm.mjs +19 -0
- package/generators/generate-blueprint/files.mjs +81 -0
- package/generators/generate-blueprint/generator.mjs +363 -0
- package/generators/generate-blueprint/index.mjs +20 -0
- package/generators/generate-blueprint/templates/.eslintrc.json.ejs +41 -0
- package/generators/generate-blueprint/templates/.github/workflows/generator.yml.ejs +32 -0
- package/generators/generate-blueprint/templates/.mocharc.cjs.ejs +29 -0
- package/generators/{server/templates/couchbase/src/main/java/package/config/couchbase/package-info.java.ejs → generate-blueprint/templates/.prettierignore.jhi.blueprint.ejs} +4 -7
- package/generators/generate-blueprint/templates/README.md.ejs +75 -0
- package/generators/generate-blueprint/templates/cli/cli.mjs.ejs +35 -0
- package/generators/generate-blueprint/templates/cli/commands.cjs.ejs +25 -0
- package/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +98 -0
- package/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +42 -0
- package/generators/generate-blueprint/templates/generators/generator/index.mjs.ejs +19 -0
- package/generators/generate-blueprint/templates/generators/generator/templates/template-file.ejs +0 -0
- package/generators/generate-blueprint/templates/test/utils.mjs.ejs +17 -0
- package/generators/generator-base-blueprint.js +29 -0
- package/generators/generator-base-docker.js +1 -0
- package/generators/generator-base-entities.cjs +368 -0
- package/generators/generator-base-private.js +1 -1
- package/generators/generator-base.js +157 -23
- package/generators/generator-constants.js +22 -20
- package/generators/generator-list.js +2 -0
- package/generators/generator-transforms.js +0 -1
- package/generators/gradle/constants.cjs +1 -1
- package/generators/gradle/esm.mjs +19 -0
- package/generators/heroku/esm.mjs +1 -3
- package/generators/info/esm.mjs +1 -3
- package/generators/init/esm.mjs +19 -0
- package/generators/init/files.cjs +9 -3
- package/generators/init/index.cjs +5 -0
- package/generators/init/templates/.gitignore.jhi.ejs +5 -0
- package/generators/init/templates/{.lintstagedrc.js.ejs → .lintstagedrc.cjs.ejs} +0 -0
- package/generators/java/esm.mjs +19 -0
- package/generators/java/index.cjs +58 -2
- package/generators/kubernetes/esm.mjs +1 -3
- package/generators/kubernetes-helm/esm.mjs +1 -3
- package/generators/kubernetes-knative/esm.mjs +1 -3
- package/generators/languages/esm.mjs +2 -3
- package/generators/languages/templates/src/test/resources/i18n/messages_fr.properties.ejs +4 -1
- package/generators/maven/esm.mjs +19 -0
- package/generators/maven/files.cjs +0 -1
- package/generators/maven/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
- package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +18 -2
- package/generators/maven/templates/mvnw +13 -7
- package/generators/maven/templates/mvnw.cmd +19 -13
- package/generators/maven/templates/pom.xml.jhi.ejs +1 -1
- package/generators/openapi-client/esm.mjs +1 -3
- package/generators/openapi-client/index.js +11 -4
- package/generators/openshift/esm.mjs +1 -3
- package/generators/page/esm.mjs +1 -3
- package/generators/project-name/esm.mjs +19 -0
- package/generators/server/cleanup.js +19 -3
- package/generators/server/esm.mjs +2 -2
- package/generators/server/files-couchbase.js +28 -31
- package/generators/server/files.js +115 -18
- package/generators/server/index.js +23 -17
- package/generators/server/needle-api/needle-server-gradle.js +38 -0
- package/generators/server/needle-api/needle-server-maven.js +1 -1
- package/generators/server/templates/.mvn/jvm.config +1 -0
- package/generators/server/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
- package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +18 -2
- package/generators/server/templates/build.gradle.ejs +7 -5
- package/generators/server/templates/couchbase/src/main/java/package/repository/CouchbaseSearchRepository.java.ejs +91 -0
- package/generators/server/templates/couchbase/src/main/java/package/repository/JHipsterCouchbaseRepository.java.ejs +47 -45
- package/generators/server/templates/couchbase/src/main/java/package/repository/PersistentTokenRepository_couchbase.java.ejs +2 -2
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/authority/ROLE_ADMIN.json.ejs +3 -0
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/authority/ROLE_USER.json.ejs +3 -0
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/{user__admin.json.ejs → user/admin.json.ejs} +2 -2
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/{user__user.json.ejs → user/user.json.ejs} +2 -2
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.2__create_indexes.n1ql.ejs +34 -0
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0__create_collections.n1ql.ejs +8 -0
- package/generators/server/templates/couchbase/src/test/java/package/CouchbaseTestContainerExtension.java.ejs +4 -3
- package/generators/server/templates/couchbase/src/test/java/package/repository/{JHipsterCouchbaseRepositoryTest.java.ejs → CouchbaseSearchRepositoryTest.java.ejs} +2 -2
- package/generators/server/templates/devcontainer/Dockerfile.ejs +25 -0
- package/generators/server/templates/devcontainer/devcontainer.json.ejs +64 -0
- package/generators/server/templates/gradle/profile_prod.gradle.ejs +4 -0
- package/generators/server/templates/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/generators/server/templates/gradle.properties.ejs +8 -8
- package/generators/server/templates/mvnw +13 -7
- package/generators/server/templates/mvnw.cmd +19 -13
- package/generators/server/templates/npmw +14 -5
- package/generators/server/templates/pom.xml.ejs +65 -58
- package/generators/server/templates/settings.gradle.ejs +6 -4
- package/generators/server/templates/src/main/docker/app.yml.ejs +4 -6
- package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +2 -1
- package/generators/server/templates/src/main/docker/mysql.yml.ejs +1 -0
- package/generators/server/templates/src/main/docker/zipkin.yml.ejs +25 -0
- package/generators/server/templates/src/main/java/package/config/AsyncConfiguration.java.ejs +6 -0
- package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_couchbase.java.ejs +26 -16
- package/generators/{client/templates/react/src/main/webapp/app/entities/index.tsx.ejs → server/templates/src/main/java/package/config/KafkaSseConsumer.java.ejs} +8 -14
- package/generators/server/templates/src/main/java/package/config/KafkaSseProducer.java.ejs +30 -0
- package/generators/server/templates/src/main/java/package/config/LocaleConfiguration_reactive.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +12 -10
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +2 -1
- package/generators/server/templates/src/main/java/package/domain/Authority.java.ejs +11 -0
- package/generators/server/templates/src/main/java/package/domain/PersistentToken.java.ejs +6 -6
- package/generators/server/templates/src/main/java/package/domain/User.java.ejs +9 -7
- package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +1 -11
- package/generators/server/templates/src/main/java/package/repository/EntityManager.java.ejs +48 -38
- package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +48 -72
- package/generators/server/templates/src/main/java/package/security/jwt/JWTFilter.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +8 -6
- package/generators/server/templates/src/main/java/package/web/filter/OAuth2ReactiveRefreshTokensWebFilter.java.ejs +0 -1
- package/generators/server/templates/src/main/java/package/web/rest/AccountResource.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/web/rest/KafkaResource.java.ejs +60 -108
- package/generators/server/templates/src/main/java/package/web/rest/KafkaResource_reactive.java.ejs +74 -0
- package/generators/server/templates/src/main/java/package/web/rest/LogoutResource_reactive.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +2 -2
- package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +8 -0
- package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +6 -0
- package/generators/server/templates/src/main/resources/config/application.yml.ejs +28 -22
- package/generators/server/templates/src/test/java/package/CassandraKeyspaceIT.java.ejs +3 -4
- package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +12 -4
- package/generators/server/templates/src/test/java/package/TechnicalStructureTest.java.ejs +18 -15
- package/generators/server/templates/src/test/java/package/config/CassandraTestContainer.java.ejs +122 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedCassandra.java.ejs +11 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedKafka.java.ejs +11 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedMongo.java.ejs +11 -0
- package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +2 -0
- package/generators/server/templates/src/test/java/package/config/KafkaTestContainer.java.ejs +38 -0
- package/generators/server/templates/src/test/java/package/config/MongoDbTestContainer.java.ejs +67 -0
- package/generators/server/templates/src/test/java/package/config/TestContainersSpringContextCustomizerFactory.java.ejs +114 -0
- package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +3 -10
- package/generators/server/templates/src/test/java/package/cucumber/stepdefs/StepDefs.java.ejs +8 -0
- package/generators/server/templates/src/test/java/package/cucumber/stepdefs/UserStepDefs.java.ejs +17 -3
- package/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/security/SecurityUtilsUnitTest_reactive.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +5 -5
- package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +2 -4
- package/generators/server/templates/src/test/java/package/service/UserServiceIT.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/service/mapper/UserMapperTest.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +15 -8
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_oauth2.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_skipUserManagement.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT.java.ejs +52 -123
- package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT_reactive.java.ejs +99 -0
- package/generators/server/templates/src/test/java/package/web/rest/PublicUserResourceIT.java.ejs +7 -10
- package/generators/server/templates/src/test/java/package/web/rest/TestUtil.java.ejs +1 -6
- package/generators/server/templates/src/test/java/package/web/rest/UserJWTControllerIT.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/web/rest/UserResourceIT.java.ejs +42 -47
- package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs +2 -5
- package/generators/server/templates/src/test/resources/META-INF/spring.factories.ejs +1 -1
- package/generators/server/templates/src/test/resources/config/application.yml.ejs +21 -20
- package/generators/server/templates/src/test/resources/testcontainers.properties.ejs +1 -0
- package/generators/spring-boot/esm.mjs +19 -0
- package/generators/spring-controller/esm.mjs +1 -3
- package/generators/spring-service/esm.mjs +1 -3
- package/generators/upgrade/esm.mjs +1 -3
- package/generators/upgrade-config/esm.mjs +1 -3
- package/generators/workspaces/esm.mjs +1 -3
- package/generators/workspaces/index.js +2 -1
- package/lib/constants/logo.cjs +30 -0
- package/lib/constants/priorities.cjs +216 -2
- package/lib/constants/priorities.mjs +29 -1
- package/lib/index.mjs +6 -0
- package/lib/support/mixin.cjs +5 -1
- package/lib/support/shared-data.cjs +34 -1
- package/package.json +33 -29
- package/utils/entity.js +21 -2
- package/utils/faker.js +3 -3
- package/utils/field.js +69 -52
- package/utils/relationship.js +15 -4
- package/utils/user.js +109 -0
- package/generators/app/generator.spec.mjs +0 -47
- package/generators/aws/generator.spec.mjs +0 -47
- package/generators/azure-app-service/generator.spec.mjs +0 -47
- package/generators/azure-spring-cloud/generator.spec.mjs +0 -47
- package/generators/base/generator.spec.mjs +0 -44
- package/generators/bootstrap/generator.spec.mjs +0 -44
- package/generators/ci-cd/generator.spec.mjs +0 -47
- package/generators/client/__workflow/devserver-angular.json +0 -13
- package/generators/client/__workflow/devserver-react.json +0 -13
- package/generators/client/__workflow/devserver-vue.json +0 -13
- package/generators/client/generator.spec.mjs +0 -47
- package/generators/cloudfoundry/generator.spec.mjs +0 -47
- package/generators/common/generator.spec.mjs +0 -47
- package/generators/cypress/generator.spec.mjs +0 -47
- package/generators/database-changelog/generator.spec.mjs +0 -47
- package/generators/database-changelog-liquibase/generator.spec.mjs +0 -47
- package/generators/docker-compose/generator.spec.mjs +0 -44
- package/generators/entities/generator.spec.mjs +0 -47
- package/generators/entities-client/generator.spec.mjs +0 -47
- package/generators/entity/generator.spec.mjs +0 -47
- package/generators/entity-client/generator.spec.mjs +0 -47
- package/generators/entity-i18n/generator.spec.mjs +0 -47
- package/generators/entity-server/generator.spec.mjs +0 -47
- package/generators/entity-server/templates/src/main/java/package/repository/search/SortToFieldSortBuilderConverter.java.ejs +0 -24
- package/generators/export-jdl/generator.spec.mjs +0 -44
- package/generators/gae/generator.spec.mjs +0 -47
- package/generators/gradle/__snapshots__/generator.spec.cjs.snap +0 -59
- package/generators/gradle/generator.spec.cjs +0 -71
- package/generators/heroku/generator.spec.mjs +0 -47
- package/generators/info/generator.spec.mjs +0 -44
- package/generators/init/__snapshots__/generator.spec.cjs.snap +0 -65
- package/generators/init/generator.spec.cjs +0 -112
- package/generators/java/__snapshots__/generator.spec.cjs.snap +0 -118
- package/generators/java/generator.spec.cjs +0 -87
- package/generators/kubernetes/generator.spec.mjs +0 -44
- package/generators/kubernetes-helm/generator.spec.mjs +0 -44
- package/generators/kubernetes-knative/generator.spec.mjs +0 -44
- package/generators/languages/generator.spec.mjs +0 -47
- package/generators/maven/__snapshots__/generator.spec.cjs.snap +0 -53
- package/generators/maven/generator.spec.cjs +0 -78
- package/generators/maven/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
- package/generators/openapi-client/generator.spec.mjs +0 -47
- package/generators/openshift/generator.spec.mjs +0 -44
- package/generators/page/generator.spec.mjs +0 -47
- package/generators/project-name/generator.spec.cjs +0 -43
- package/generators/server/__snapshots__/generator.spec.mjs.snap +0 -1931
- package/generators/server/generator.spec.mjs +0 -52
- package/generators/server/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactory.java.ejs +0 -83
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactoryBean.java.ejs +0 -40
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryQuery.java.ejs +0 -44
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlQueryCreator.java.ejs +0 -162
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlRepositoryQueryExecutor.java.ejs +0 -104
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_ADMIN.json.ejs +0 -3
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_USER.json.ejs +0 -3
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0__create_indexes.n1ql.ejs +0 -19
- package/generators/server/templates/src/main/java/package/config/KafkaProperties.java.ejs +0 -68
- package/generators/server/templates/src/test/java/package/AbstractCassandraTest.java.ejs +0 -125
- package/generators/server/templates/src/test/java/package/MongoDbTestContainerExtension.java.ejs +0 -37
- package/generators/server/templates/src/test/java/package/TestContainersSpringContextCustomizerFactory.java.ejs +0 -24
- package/generators/spring-boot/__snapshots__/generator.spec.cjs.snap +0 -80
- package/generators/spring-boot/generator.spec.cjs +0 -64
- package/generators/spring-controller/generator.spec.mjs +0 -47
- package/generators/spring-service/generator.spec.mjs +0 -47
- package/generators/upgrade/generator.spec.mjs +0 -44
- package/generators/upgrade-config/generator.spec.mjs +0 -44
- package/generators/workspaces/generator.spec.mjs +0 -47
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2022 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
<%#
|
|
20
|
+
This is a fragment file, it will be merged into to root template if available.
|
|
21
|
+
EJS fragments will process % delimiter tags in template and & delimiter tags in the merge process.
|
|
22
|
+
-%>
|
|
23
|
+
<&_ if (fragment.classAdditionalFieldsMethodsSection) { -&>
|
|
24
|
+
|
|
25
|
+
@PostLoad
|
|
26
|
+
@PostPersist
|
|
27
|
+
public void updateEntityState() {
|
|
28
|
+
this.setIsPersisted();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
<&_ } -&>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2022 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
<%#
|
|
20
|
+
This is a fragment file, it will be merged into to root template if available.
|
|
21
|
+
EJS fragments will process % delimiter tags in template and & delimiter tags in the merge process.
|
|
22
|
+
-%>
|
|
23
|
+
<&_ if (fragment.importSection) { -&>
|
|
24
|
+
import org.springframework.data.domain.Persistable;
|
|
25
|
+
<&_ } -&>
|
|
26
|
+
|
|
27
|
+
<&_ if (fragment.additionalInterfacesSection) { -&>
|
|
28
|
+
, Persistable<<%= primaryKey.type %>>
|
|
29
|
+
<&_ } -&>
|
|
30
|
+
|
|
31
|
+
<&_ if (fragment.classAdditionalFieldsSection) { -&>
|
|
32
|
+
@Transient
|
|
33
|
+
private boolean isPersisted;
|
|
34
|
+
<&_ } -&>
|
|
35
|
+
|
|
36
|
+
<&_ if (fragment.classAdditionalFieldsMethodsSection) { -&>
|
|
37
|
+
<%_ if (primaryKey.name !== 'id') { -%>
|
|
38
|
+
@Override
|
|
39
|
+
public <%= primaryKey.type %> getId() {
|
|
40
|
+
return this.<%= primaryKey.name %>;
|
|
41
|
+
}
|
|
42
|
+
<%_ } -%>
|
|
43
|
+
|
|
44
|
+
@Transient
|
|
45
|
+
@Override
|
|
46
|
+
public boolean isNew() {
|
|
47
|
+
return !this.isPersisted;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public <%= persistClass %> setIsPersisted() {
|
|
51
|
+
this.isPersisted = true;
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
<&_ } -&>
|
|
@@ -92,7 +92,7 @@ import org.springframework.data.relational.core.mapping.Table;
|
|
|
92
92
|
<&_ if (fragment.classAdditionalRelationshipsSection) { -&>
|
|
93
93
|
<%_ for (const relationship of relationships) { _%>
|
|
94
94
|
<%_ if (relationship.ownerSide && !relationship.collection && !relationship.id) { _%>
|
|
95
|
-
@Column("<%= relationship.
|
|
95
|
+
@Column("<%= relationship.joinColumnNames[0] %>")
|
|
96
96
|
private <%= relationship.otherEntity.primaryKey.type %> <%= relationship.relationshipFieldName %>Id;
|
|
97
97
|
<%_ } _%>
|
|
98
98
|
<%_ } _%>
|
package/generators/entity-server/templates/src/main/java/package/domain/EntityCallback.java.ejs
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2022 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
package <%= entityAbsolutePackage %>.domain;
|
|
20
|
+
|
|
21
|
+
import org.reactivestreams.Publisher;
|
|
22
|
+
import org.springframework.data.r2dbc.mapping.OutboundRow;
|
|
23
|
+
import org.springframework.data.r2dbc.mapping.event.AfterConvertCallback;
|
|
24
|
+
import org.springframework.data.r2dbc.mapping.event.AfterSaveCallback;
|
|
25
|
+
import org.springframework.data.relational.core.sql.SqlIdentifier;
|
|
26
|
+
import org.springframework.stereotype.Component;
|
|
27
|
+
|
|
28
|
+
import reactor.core.publisher.Mono;
|
|
29
|
+
|
|
30
|
+
@Component
|
|
31
|
+
public class <%= persistClass %>Callback implements AfterSaveCallback<<%= persistClass %>>, AfterConvertCallback<<%= persistClass %>> {
|
|
32
|
+
|
|
33
|
+
@Override
|
|
34
|
+
public Publisher<<%= persistClass %>> onAfterConvert(<%= persistClass %> entity, SqlIdentifier table) {
|
|
35
|
+
return Mono.just(entity.setIsPersisted());
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@Override
|
|
39
|
+
public Publisher<<%= persistClass %>> onAfterSave(<%= persistClass %> entity, OutboundRow outboundRow,
|
|
40
|
+
SqlIdentifier table) {
|
|
41
|
+
return Mono.just(entity.setIsPersisted());
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -20,13 +20,13 @@ package <%= entityAbsolutePackage %>.repository;
|
|
|
20
20
|
|
|
21
21
|
import <%= entityAbsolutePackage %>.domain.<%= persistClass %>;
|
|
22
22
|
|
|
23
|
-
<%_ if (
|
|
23
|
+
<%_ if (implementsEagerLoadApis) { _%>
|
|
24
24
|
import org.springframework.data.domain.Page;
|
|
25
25
|
import org.springframework.data.domain.Pageable;
|
|
26
26
|
<%_ } _%>
|
|
27
27
|
<%_ if (databaseTypeSql) { _%>
|
|
28
28
|
import org.springframework.data.jpa.repository.*;
|
|
29
|
-
<%_ if (
|
|
29
|
+
<%_ if (implementsEagerLoadApis) { _%>
|
|
30
30
|
import org.springframework.data.repository.query.Param;
|
|
31
31
|
<%_ } _%>
|
|
32
32
|
<%_ } _%>
|
|
@@ -41,19 +41,11 @@ import org.springframework.data.neo4j.repository.Neo4jRepository;
|
|
|
41
41
|
import org.springframework.data.cassandra.repository.CassandraRepository;
|
|
42
42
|
<%_ } _%>
|
|
43
43
|
import org.springframework.stereotype.Repository;
|
|
44
|
-
<%_
|
|
45
|
-
if (
|
|
46
|
-
let importList = fieldsContainOwnerManyToMany;
|
|
47
|
-
for (r of relationships) {
|
|
48
|
-
if (r.relationshipManyToOne && r.otherEntityUser) {
|
|
49
|
-
importList = true;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
_%>
|
|
53
|
-
<%_ if (importList) { _%>
|
|
44
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb) { _%>
|
|
45
|
+
<%_ if (implementsEagerLoadApis || relationships.some(r => r.relationshipManyToOne && r.otherEntityUser)) { _%>
|
|
54
46
|
import java.util.List;
|
|
55
47
|
<%_ } _%>
|
|
56
|
-
<%_ if (
|
|
48
|
+
<%_ if (implementsEagerLoadApis) { _%>
|
|
57
49
|
import java.util.Optional;
|
|
58
50
|
<%_ } _%>
|
|
59
51
|
<%_ } _%>
|
|
@@ -65,11 +57,11 @@ import java.util.UUID;
|
|
|
65
57
|
/**
|
|
66
58
|
* Spring Data <%= officialDatabaseType %> repository for the <%= persistClass %> entity.
|
|
67
59
|
*/
|
|
68
|
-
<%_ if (!
|
|
60
|
+
<%_ if (!implementsEagerLoadApis) { _%>
|
|
69
61
|
@SuppressWarnings("unused")
|
|
70
62
|
<%_ } _%>
|
|
71
63
|
@Repository
|
|
72
|
-
public interface <%= entityClass %>Repository extends <% if (databaseTypeSql) { %>JpaRepository<% } %><% if (databaseTypeMongodb) { %>MongoRepository<% } %><% if (databaseTypeNeo4j) { %>Neo4jRepository<% } %><% if (databaseTypeCassandra) { %>CassandraRepository<% } %><<%= persistClass %>, <%= primaryKey.type %>><% if (jpaMetamodelFiltering) { %>, JpaSpecificationExecutor<<%= persistClass %>><% } %> {
|
|
64
|
+
public interface <%= entityClass %>Repository extends <% if (containsBagRelationships && databaseTypeSql) { %><%= entityClass %>RepositoryWithBagRelationships, <% } %><% if (databaseTypeSql) { %>JpaRepository<% } %><% if (databaseTypeMongodb) { %>MongoRepository<% } %><% if (databaseTypeNeo4j) { %>Neo4jRepository<% } %><% if (databaseTypeCassandra) { %>CassandraRepository<% } %><<%= persistClass %>, <%= primaryKey.type %>><% if (jpaMetamodelFiltering) { %>, JpaSpecificationExecutor<<%= persistClass %>><% } %> {
|
|
73
65
|
<%_ for (const relationship of relationships) { _%>
|
|
74
66
|
<%_ if (relationship.relationshipManyToOne && relationship.otherEntityUser && databaseTypeSql) { _%>
|
|
75
67
|
|
|
@@ -77,28 +69,49 @@ public interface <%= entityClass %>Repository extends <% if (databaseTypeSql) {
|
|
|
77
69
|
List<<%= persistClass %>> findBy<%= relationship.relationshipNameCapitalized %>IsCurrentUser();
|
|
78
70
|
<%_ } _%>
|
|
79
71
|
<%_ } _%>
|
|
80
|
-
<%_ if (
|
|
72
|
+
<%_ if (implementsEagerLoadApis) { _%>
|
|
81
73
|
<%_ if (databaseTypeSql) { _%>
|
|
82
74
|
|
|
75
|
+
<%_ const containsToOneEagerRelationship = relationships.some(relationship => relationship.relationshipEagerLoad && !relationship.bagRelationship); _%>
|
|
76
|
+
default Optional<<%= persistClass %>> findOneWithEagerRelationships(<%= primaryKey.type %> <%= primaryKey.name %>) {
|
|
77
|
+
return <% if (containsBagRelationships) { %>this.fetchBagRelationships(<% } %>
|
|
78
|
+
this.<% if (containsToOneEagerRelationship) { %>findOneWithToOneRelationships<% } else { %>findById<% } %>(<%= primaryKey.name %>)
|
|
79
|
+
<% if (containsBagRelationships) { %>)<% } %>;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
default List<<%= persistClass %>> findAllWithEagerRelationships() {
|
|
83
|
+
return <% if (containsBagRelationships) { %>this.fetchBagRelationships(<% } %>
|
|
84
|
+
this.<% if (containsToOneEagerRelationship) { %>findAllWithToOneRelationships<% } else { %>findAll<% } %>()
|
|
85
|
+
<% if (containsBagRelationships) { %>)<% } %>;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
default Page<<%= persistClass %>> findAllWithEagerRelationships(Pageable pageable) {
|
|
89
|
+
return <% if (containsBagRelationships) { %>this.fetchBagRelationships(<% } %>
|
|
90
|
+
this.<% if (containsToOneEagerRelationship) { %>findAllWithToOneRelationships<% } else { %>findAll<% } %>(pageable)
|
|
91
|
+
<% if (containsBagRelationships) { %>)<% } %>;
|
|
92
|
+
}
|
|
93
|
+
<%_ if (containsToOneEagerRelationship) { _%>
|
|
94
|
+
|
|
83
95
|
@Query(value = "select distinct <%= entityInstanceDbSafe %> from <%= persistClass %> <%= entityInstanceDbSafe %><%
|
|
84
96
|
for (const relationship of relationships) {
|
|
85
|
-
if (relationship.relationshipEagerLoad) { %> left join fetch <%= entityInstanceDbSafe %>.<%= relationship.reference.name %><% }
|
|
97
|
+
if (relationship.relationshipEagerLoad && !relationship.bagRelationship) { %> left join fetch <%= entityInstanceDbSafe %>.<%= relationship.reference.name %><% }
|
|
86
98
|
} %>",
|
|
87
99
|
countQuery = "select count(distinct <%= entityInstanceDbSafe %>) from <%= persistClass %> <%= entityInstanceDbSafe %>")
|
|
88
|
-
Page<<%= persistClass %>>
|
|
100
|
+
Page<<%= persistClass %>> findAllWithToOneRelationships(Pageable pageable);
|
|
89
101
|
|
|
90
102
|
@Query("select distinct <%= entityInstanceDbSafe %> from <%= persistClass %> <%= entityInstanceDbSafe %><%
|
|
91
103
|
for (const relationship of relationships) {
|
|
92
|
-
if (relationship.relationshipEagerLoad) { %> left join fetch <%= entityInstanceDbSafe %>.<%= relationship.reference.name %><% }
|
|
104
|
+
if (relationship.relationshipEagerLoad && !relationship.bagRelationship) { %> left join fetch <%= entityInstanceDbSafe %>.<%= relationship.reference.name %><% }
|
|
93
105
|
} %>")
|
|
94
|
-
List<<%= persistClass %>>
|
|
106
|
+
List<<%= persistClass %>> findAllWithToOneRelationships();
|
|
95
107
|
|
|
96
108
|
@Query("select <%= entityInstanceDbSafe %> from <%= persistClass %> <%= entityInstanceDbSafe %><%
|
|
97
109
|
for (const relationship of relationships) {
|
|
98
|
-
if (relationship.relationshipEagerLoad) { %> left join fetch <%= entityInstanceDbSafe %>.<%= relationship.reference.name %><% }
|
|
110
|
+
if (relationship.relationshipEagerLoad && !relationship.bagRelationship) { %> left join fetch <%= entityInstanceDbSafe %>.<%= relationship.reference.name %><% }
|
|
99
111
|
} %> where <%= entityInstanceDbSafe %>.id =:id")
|
|
100
|
-
Optional<<%= persistClass %>>
|
|
101
|
-
<%_ }
|
|
112
|
+
Optional<<%= persistClass %>> findOneWithToOneRelationships(@Param("id") <%= primaryKey.type %> id);
|
|
113
|
+
<%_ } _%>
|
|
114
|
+
<%_ } else if (databaseTypeMongodb) { _%>
|
|
102
115
|
|
|
103
116
|
@Query("{}")
|
|
104
117
|
Page<<%= persistClass %>> findAllWithEagerRelationships(Pageable pageable);
|
|
@@ -38,19 +38,21 @@ import java.util.Map;
|
|
|
38
38
|
import java.util.Map.Entry;
|
|
39
39
|
import java.util.Optional;
|
|
40
40
|
import org.springframework.data.domain.Pageable;
|
|
41
|
-
<%_ if (databaseTypeSql) { _%>
|
|
42
41
|
import io.r2dbc.spi.Row;
|
|
43
42
|
import io.r2dbc.spi.RowMetadata;
|
|
44
43
|
import static org.springframework.data.relational.core.query.Criteria.where;
|
|
45
|
-
|
|
44
|
+
<%_ if (containsBagRelationships) { _%>
|
|
46
45
|
import static org.springframework.data.relational.core.query.Query.query;
|
|
47
|
-
|
|
46
|
+
<%_ } _%>
|
|
48
47
|
import org.springframework.data.r2dbc.convert.R2dbcConverter;
|
|
49
48
|
import org.springframework.data.r2dbc.core.R2dbcEntityOperations;
|
|
50
49
|
import org.springframework.data.r2dbc.core.R2dbcEntityTemplate;
|
|
51
50
|
import org.springframework.data.r2dbc.repository.support.SimpleR2dbcRepository;
|
|
52
51
|
import org.springframework.data.relational.core.query.Criteria;
|
|
53
52
|
import org.springframework.data.relational.core.sql.Column;
|
|
53
|
+
import org.springframework.data.relational.core.sql.Comparison;
|
|
54
|
+
import org.springframework.data.relational.core.sql.Condition;
|
|
55
|
+
import org.springframework.data.relational.core.sql.Conditions;
|
|
54
56
|
import org.springframework.data.relational.core.sql.Expression;
|
|
55
57
|
import org.springframework.data.relational.core.sql.Select;
|
|
56
58
|
import org.springframework.data.relational.core.sql.SelectBuilder.SelectFromAndJoin<% if (reactiveEagerRelations.length > 0) { %>Condition<% } %>;
|
|
@@ -58,7 +60,6 @@ import org.springframework.data.relational.core.sql.Table;
|
|
|
58
60
|
import org.springframework.data.relational.repository.support.MappingRelationalEntityInformation;
|
|
59
61
|
import org.springframework.r2dbc.core.DatabaseClient;
|
|
60
62
|
import org.springframework.r2dbc.core.RowsFetchSpec;
|
|
61
|
-
<%_ } _%>
|
|
62
63
|
|
|
63
64
|
import <%= entityAbsolutePackage %>.domain.<%= persistClass %>;
|
|
64
65
|
<% relationships.forEach(function(rel) {
|
|
@@ -105,14 +106,14 @@ class <%= entityClass %>RepositoryInternalImpl extends SimpleR2dbcRepository<<%=
|
|
|
105
106
|
<%_ relationships.forEach(function(rel) {
|
|
106
107
|
if (rel.shouldWriteJoinTable) {
|
|
107
108
|
_%>
|
|
108
|
-
private final static EntityManager.LinkTable <%= rel.relationshipName %>Link = new EntityManager.LinkTable("<%= rel.joinTable.name %>", "<%= getColumnName(name) %>
|
|
109
|
+
private final static EntityManager.LinkTable <%= rel.relationshipName %>Link = new EntityManager.LinkTable("<%= rel.joinTable.name %>", "<%= entity.entityTableName %>_<%= getColumnName(entity.primaryKey.name) %>", "<%= rel.joinColumnNames[0] %>");
|
|
109
110
|
<%_ }
|
|
110
111
|
}); _%>
|
|
111
112
|
|
|
112
113
|
public <%= entityClass %>RepositoryInternalImpl(R2dbcEntityTemplate template, EntityManager entityManager<%_
|
|
113
114
|
reactiveUniqueEntityTypes.forEach(function(element) { _%>, <%= element %>RowMapper <%= element.toLowerCase() %>Mapper<%_ }); _%>, R2dbcEntityOperations entityOperations,
|
|
114
115
|
R2dbcConverter converter) {
|
|
115
|
-
super(new MappingRelationalEntityInformation(converter.getMappingContext().getRequiredPersistentEntity(<%=
|
|
116
|
+
super(new MappingRelationalEntityInformation(converter.getMappingContext().getRequiredPersistentEntity(<%= persistClass %>.class)), entityOperations, converter);
|
|
116
117
|
this.db = template.getDatabaseClient();
|
|
117
118
|
this.r2dbcEntityTemplate = template;
|
|
118
119
|
this.entityManager = entityManager;
|
|
@@ -123,40 +124,35 @@ _%>
|
|
|
123
124
|
|
|
124
125
|
@Override
|
|
125
126
|
public Flux<<%= persistClass %>> findAllBy(Pageable pageable) {
|
|
126
|
-
return
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
@Override
|
|
130
|
-
public Flux<<%= persistClass %>> findAllBy(Pageable pageable, Criteria criteria) {
|
|
131
|
-
return createQuery(pageable, criteria).all();
|
|
127
|
+
return createQuery(pageable, null).all();
|
|
132
128
|
}
|
|
133
129
|
|
|
134
|
-
RowsFetchSpec<<%= persistClass %>> createQuery(Pageable pageable,
|
|
135
|
-
List<Expression> columns = <%=
|
|
130
|
+
RowsFetchSpec<<%= persistClass %>> createQuery(Pageable pageable, Condition whereClause) {
|
|
131
|
+
List<Expression> columns = <%= entityClass %>SqlHelper.getColumns(entityTable, EntityManager.ENTITY_ALIAS);
|
|
136
132
|
<%_ reactiveEagerRelations.forEach(function(rel) { _%>
|
|
137
133
|
columns.addAll(<%= rel.otherEntityNameCapitalized %>SqlHelper.getColumns(<%= rel.relationshipName %>Table, "<%= rel.relationshipName %>"));
|
|
138
134
|
<%_ }); _%>
|
|
139
135
|
SelectFromAndJoin<% if (reactiveEagerRelations.length > 0) { %>Condition<% } %> selectFrom = Select.builder().select(columns).from(entityTable)
|
|
140
|
-
<%_ reactiveEagerRelations.forEach(function(rel) {
|
|
141
|
-
|
|
142
|
-
.leftOuterJoin(<%= rel.relationshipName %>Table).on(Column.create("<%= colName %>", entityTable)).equals(Column.create("id", <%= rel.relationshipName %>Table ))
|
|
136
|
+
<%_ reactiveEagerRelations.forEach(function(rel) { _%>
|
|
137
|
+
.leftOuterJoin(<%= rel.relationshipName %>Table).on(Column.create("<%= rel.joinColumnNames[0] %>", entityTable)).equals(Column.create("<%= rel.otherEntity.primaryKey.fields[0].columnName %>", <%= rel.relationshipName %>Table ))
|
|
143
138
|
<%_ }); _%>;
|
|
144
|
-
|
|
145
|
-
String select = entityManager.createSelect(selectFrom, <%= persistClass %>.class, pageable,
|
|
139
|
+
// we do not support Criteria here for now as of https://github.com/jhipster/generator-jhipster/issues/18269
|
|
140
|
+
String select = entityManager.createSelect(selectFrom, <%= persistClass %>.class, pageable, whereClause);
|
|
146
141
|
return db.sql(select).map(this::process);
|
|
147
142
|
}
|
|
148
143
|
|
|
149
144
|
@Override
|
|
150
145
|
public Flux<<%= persistClass %>> findAll() {
|
|
151
|
-
return findAllBy(null
|
|
146
|
+
return findAllBy(null);
|
|
152
147
|
}
|
|
153
148
|
|
|
154
149
|
@Override
|
|
155
150
|
public Mono<<%= persistClass %>> findById(<%= primaryKey.type %> id) {
|
|
156
|
-
|
|
151
|
+
Comparison whereClause = Conditions.isEqual(entityTable.column("<%= primaryKey.fields[0].columnName %>"), Conditions.just(id.toString()));
|
|
152
|
+
return createQuery(null, whereClause).one();
|
|
157
153
|
}
|
|
158
154
|
|
|
159
|
-
<%_ if (
|
|
155
|
+
<%_ if (implementsEagerLoadApis) { _%>
|
|
160
156
|
|
|
161
157
|
@Override
|
|
162
158
|
public Mono<<%= persistClass %>> findOneWithEagerRelationships(<%= primaryKey.type %> id) {
|
|
@@ -190,30 +186,30 @@ _%>
|
|
|
190
186
|
return entityManager.insert(entity);
|
|
191
187
|
}
|
|
192
188
|
<%_ } _%>
|
|
193
|
-
return super.save(entity)<% if (
|
|
189
|
+
return super.save(entity)<% if (containsBagRelationships) { %>.flatMap((S e) -> updateRelations(e))<% } %>;
|
|
194
190
|
}
|
|
195
191
|
|
|
196
|
-
<%_ if (
|
|
192
|
+
<%_ if (containsBagRelationships) { _%>
|
|
197
193
|
protected <S extends <%= persistClass %>> Mono<S> updateRelations(S entity) {
|
|
198
194
|
<%_ relationships.filter(function(rel) {
|
|
199
195
|
return (rel.relationshipManyToMany && rel.ownerSide);
|
|
200
196
|
}).forEach(function(rel, idx) { _%>
|
|
201
197
|
<%_ if (idx === 0) { _%>
|
|
202
|
-
Mono<Void> result = entityManager.updateLinkTable(<%= rel.relationshipName %>Link, entity.get<%= primaryKey.nameCapitalized %>(), entity.get<%= rel.relationshipNameCapitalizedPlural %>().stream().map(<%= asEntity(rel.otherEntityNameCapitalized) %>::
|
|
198
|
+
Mono<Void> result = entityManager.updateLinkTable(<%= rel.relationshipName %>Link, entity.get<%= primaryKey.nameCapitalized %>(), entity.get<%= rel.relationshipNameCapitalizedPlural %>().stream().map(<%= asEntity(rel.otherEntityNameCapitalized) %>::get<%= rel.otherEntity.primaryKey.nameCapitalized %>)).then();
|
|
203
199
|
<%_ } else { _%>
|
|
204
|
-
result = result.and(entityManager.updateLinkTable(<%= rel.relationshipName %>Link, entity.get<%= primaryKey.nameCapitalized %>(), entity.get<%= rel.relationshipNameCapitalizedPlural %>().stream().map(<%= asEntity(rel.otherEntityNameCapitalized) %>::
|
|
200
|
+
result = result.and(entityManager.updateLinkTable(<%= rel.relationshipName %>Link, entity.get<%= primaryKey.nameCapitalized %>(), entity.get<%= rel.relationshipNameCapitalizedPlural %>().stream().map(<%= asEntity(rel.otherEntityNameCapitalized) %>::get<%= rel.otherEntity.primaryKey.nameCapitalized %>)));
|
|
205
201
|
<%_ } _%>
|
|
206
202
|
<%_ }); _%>
|
|
207
203
|
return result.thenReturn(entity);
|
|
208
204
|
}
|
|
209
205
|
|
|
210
206
|
@Override
|
|
211
|
-
public Mono<Void> deleteById(
|
|
207
|
+
public Mono<Void> deleteById(<%= primaryKey.type %> entityId) {
|
|
212
208
|
return deleteRelations(entityId)
|
|
213
209
|
.then(super.deleteById(entityId));
|
|
214
210
|
}
|
|
215
211
|
|
|
216
|
-
protected Mono<Void> deleteRelations(
|
|
212
|
+
protected Mono<Void> deleteRelations(<%= primaryKey.type %> entityId) {
|
|
217
213
|
<%_ relationships.filter(function(rel) {
|
|
218
214
|
return (rel.relationshipManyToMany && rel.ownerSide);
|
|
219
215
|
}).forEach(function(rel, idx) { _%>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2021 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
package <%= packageName %>.repository;
|
|
20
|
+
|
|
21
|
+
import java.util.List;
|
|
22
|
+
import java.util.Optional;
|
|
23
|
+
<%_ if (fieldsContainUUID) { _%>
|
|
24
|
+
import java.util.UUID;
|
|
25
|
+
<%_ } _%>
|
|
26
|
+
|
|
27
|
+
import org.springframework.data.domain.Page;
|
|
28
|
+
|
|
29
|
+
import <%= packageName %>.domain.<%= persistClass %>;
|
|
30
|
+
|
|
31
|
+
public interface <%= entityClass %>RepositoryWithBagRelationships {
|
|
32
|
+
Optional<<%= persistClass %>> fetchBagRelationships(Optional<<%= persistClass %>> <%= entityInstance %>);
|
|
33
|
+
|
|
34
|
+
List<<%= persistClass %>> fetchBagRelationships(List<<%= persistClass %>> <%= entityInstancePlural %>);
|
|
35
|
+
|
|
36
|
+
Page<<%= persistClass %>> fetchBagRelationships(Page<<%= persistClass %>> <%= entityInstancePlural %>);
|
|
37
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2021 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
package <%= packageName %>.repository;
|
|
20
|
+
|
|
21
|
+
import java.util.Collections;
|
|
22
|
+
import java.util.List;
|
|
23
|
+
import java.util.Optional;
|
|
24
|
+
<%_ if (fieldsContainUUID) { _%>
|
|
25
|
+
import java.util.UUID;
|
|
26
|
+
<%_ } _%>
|
|
27
|
+
|
|
28
|
+
import javax.persistence.EntityManager;
|
|
29
|
+
import javax.persistence.PersistenceContext;
|
|
30
|
+
|
|
31
|
+
import org.hibernate.annotations.QueryHints;
|
|
32
|
+
import org.springframework.data.domain.Page;
|
|
33
|
+
import org.springframework.data.domain.PageImpl;
|
|
34
|
+
|
|
35
|
+
import <%= packageName %>.domain.<%= persistClass %>;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Utility repository to load bag relationships based on https://vladmihalcea.com/hibernate-multiplebagfetchexception/
|
|
39
|
+
*/
|
|
40
|
+
public class <%= entityClass %>RepositoryWithBagRelationshipsImpl implements <%= entityClass %>RepositoryWithBagRelationships {
|
|
41
|
+
@PersistenceContext
|
|
42
|
+
private EntityManager entityManager;
|
|
43
|
+
|
|
44
|
+
@Override
|
|
45
|
+
public Optional<<%= persistClass %>> fetchBagRelationships(Optional<<%= persistClass %>> <%= entityInstance %>) {
|
|
46
|
+
return <%= entityInstance %>
|
|
47
|
+
<%_ for (const relationship of relationships.filter(relationship => relationship.bagRelationship)) { _%>
|
|
48
|
+
.map(this::fetch<%= relationship.relationshipNameCapitalizedPlural %>)
|
|
49
|
+
<%_ } _%>
|
|
50
|
+
;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@Override
|
|
54
|
+
public Page<<%= persistClass %>> fetchBagRelationships(Page<<%= persistClass %>> <%= entityInstancePlural %>) {
|
|
55
|
+
return new PageImpl<>(fetchBagRelationships(<%= entityInstancePlural %>.getContent()), <%= entityInstancePlural %>.getPageable(), <%= entityInstancePlural %>.getTotalElements());
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@Override
|
|
59
|
+
public List<<%= persistClass %>> fetchBagRelationships(List<<%= persistClass %>> <%= entityInstancePlural %>) {
|
|
60
|
+
return Optional
|
|
61
|
+
.of(<%= entityInstancePlural %>)
|
|
62
|
+
<%_ for (const relationship of relationships.filter(relationship => relationship.bagRelationship)) { _%>
|
|
63
|
+
.map(this::fetch<%= relationship.relationshipNameCapitalizedPlural %>)
|
|
64
|
+
<%_ } _%>
|
|
65
|
+
.orElse(Collections.emptyList());
|
|
66
|
+
}
|
|
67
|
+
<%_ for (const relationship of relationships.filter(relationship => relationship.bagRelationship)) { _%>
|
|
68
|
+
|
|
69
|
+
<%= persistClass %> fetch<%= relationship.relationshipNameCapitalizedPlural %>(<%= persistClass %> result) {
|
|
70
|
+
return entityManager
|
|
71
|
+
.createQuery(
|
|
72
|
+
"select <%= entityInstance %> from <%= persistClass %> <%= entityInstance %> left join fetch <%= entityInstance %>.<%= relationship.relationshipFieldNamePlural %> where <%= entityInstance %> is :<%= entityInstance %>",
|
|
73
|
+
<%= persistClass %>.class
|
|
74
|
+
)
|
|
75
|
+
.setParameter("<%= entityInstance %>", result)
|
|
76
|
+
.setHint(QueryHints.PASS_DISTINCT_THROUGH, false)
|
|
77
|
+
.getSingleResult();
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
List<<%= persistClass %>> fetch<%= relationship.relationshipNameCapitalizedPlural %>(List<<%= persistClass %>> <%= entityInstancePlural %>) {
|
|
81
|
+
return entityManager
|
|
82
|
+
.createQuery(
|
|
83
|
+
"select distinct <%= entityInstance %> from <%= persistClass %> <%= entityInstance %> left join fetch <%= entityInstance %>.<%= relationship.relationshipFieldNamePlural %> where <%= entityInstance %> in :<%= entityInstancePlural %>",
|
|
84
|
+
<%= persistClass %>.class
|
|
85
|
+
)
|
|
86
|
+
.setParameter("<%= entityInstancePlural %>", <%= entityInstancePlural %>)
|
|
87
|
+
.setHint(QueryHints.PASS_DISTINCT_THROUGH, false)
|
|
88
|
+
.getResultList();
|
|
89
|
+
}
|
|
90
|
+
<%_ } _%>
|
|
91
|
+
}
|
|
@@ -22,15 +22,11 @@ import <%= entityAbsolutePackage %>.domain.<%= persistClass %>;
|
|
|
22
22
|
<%_ if (databaseTypeCassandra) { _%>
|
|
23
23
|
import org.springframework.data.cassandra.repository.ReactiveCassandraRepository;
|
|
24
24
|
<%_ } _%>
|
|
25
|
-
<%_ if (databaseTypeCouchbase) { _%>
|
|
26
|
-
import org.springframework.data.couchbase.core.query.Query;
|
|
27
|
-
import org.springframework.data.couchbase.repository.ReactiveCouchbaseSortingRepository;
|
|
28
|
-
<%_ } _%>
|
|
29
25
|
<%_ if (databaseTypeNeo4j) { _%>
|
|
30
26
|
import org.springframework.data.neo4j.repository.ReactiveNeo4jRepository;
|
|
31
27
|
import org.springframework.data.neo4j.repository.query.Query;
|
|
32
28
|
<%_ } _%>
|
|
33
|
-
<%_ if (!paginationNo ||
|
|
29
|
+
<%_ if (!paginationNo || implementsEagerLoadApis || databaseTypeSql) { _%>
|
|
34
30
|
import org.springframework.data.domain.Pageable;
|
|
35
31
|
<%_ } _%>
|
|
36
32
|
<%_ if (databaseTypeSql) { _%>
|
|
@@ -39,16 +35,16 @@ import org.springframework.data.repository.reactive.ReactiveCrudRepository;
|
|
|
39
35
|
import org.springframework.data.relational.core.query.Criteria;
|
|
40
36
|
<%_ } _%>
|
|
41
37
|
<%_ if (databaseTypeMongodb) { _%>
|
|
42
|
-
<%_ if (
|
|
38
|
+
<%_ if (implementsEagerLoadApis) { _%>
|
|
43
39
|
import org.springframework.data.mongodb.repository.Query;
|
|
44
40
|
<%_ } _%>
|
|
45
41
|
import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
|
|
46
42
|
<%_ } _%>
|
|
47
43
|
import org.springframework.stereotype.Repository;
|
|
48
|
-
<%_ if (
|
|
44
|
+
<%_ if (databaseTypeSql || !paginationNo || implementsEagerLoadApis) { _%>
|
|
49
45
|
import reactor.core.publisher.Flux;
|
|
50
46
|
<%_ } _%>
|
|
51
|
-
<%_ if (
|
|
47
|
+
<%_ if (implementsEagerLoadApis || databaseTypeSql) { _%>
|
|
52
48
|
import reactor.core.publisher.Mono;
|
|
53
49
|
<%_ } _%>
|
|
54
50
|
<%_ if (primaryKey.typeUUID) { _%>
|
|
@@ -61,13 +57,13 @@ import java.util.UUID;
|
|
|
61
57
|
*/
|
|
62
58
|
@SuppressWarnings("unused")
|
|
63
59
|
@Repository
|
|
64
|
-
public interface <%= entityClass %>Repository extends <% if (databaseTypeSql) { %>ReactiveCrud<% } if (databaseTypeMongodb) { %>ReactiveMongo<% } if (
|
|
60
|
+
public interface <%= entityClass %>Repository extends <% if (databaseTypeSql) { %>ReactiveCrud<% } if (databaseTypeMongodb) { %>ReactiveMongo<% } if (databaseTypeNeo4j) { %>ReactiveNeo4j<% } if (databaseTypeCassandra) { %>ReactiveCassandra<% } %>Repository<<%= persistClass %>, <%= primaryKey.type %>><% if (databaseTypeSql) { %>, <%= entityClass %>RepositoryInternal<% } %> {
|
|
65
61
|
|
|
66
62
|
<%_ if (!paginationNo) { _%>
|
|
67
63
|
Flux<<%= persistClass %>> findAllBy(Pageable pageable);
|
|
68
64
|
<%_ } _%>
|
|
69
|
-
<%_ if (
|
|
70
|
-
<%_ if (
|
|
65
|
+
<%_ if (implementsEagerLoadApis) { _%>
|
|
66
|
+
<%_ if (databaseTypeMongodb) { _%>
|
|
71
67
|
|
|
72
68
|
@Query("<%= (databaseTypeMongodb) ? '{}' : '#{#n1ql.selectEntity} WHERE #{#n1ql.filter}' %>")
|
|
73
69
|
Flux<<%= persistClass %>> findAllWithEagerRelationships(Pageable pageable);
|
|
@@ -90,7 +86,7 @@ public interface <%= entityClass %>Repository extends <% if (databaseTypeSql) {
|
|
|
90
86
|
<%_ } _%>
|
|
91
87
|
<%_ } _%>
|
|
92
88
|
<%_ if (databaseTypeSql) { _%>
|
|
93
|
-
<%_ if (
|
|
89
|
+
<%_ if (implementsEagerLoadApis) { _%>
|
|
94
90
|
|
|
95
91
|
@Override
|
|
96
92
|
Mono<<%= persistClass %>> findOneWithEagerRelationships(<%= primaryKey.type %> id);
|
|
@@ -108,21 +104,21 @@ public interface <%= entityClass %>Repository extends <% if (databaseTypeSql) {
|
|
|
108
104
|
let ownerSide = relationship.ownerSide; _%>
|
|
109
105
|
<%_ if (relationship.relationshipManyToOne || (relationship.relationshipOneToOne && ownerSide)) { _%>
|
|
110
106
|
|
|
111
|
-
@Query("SELECT * FROM <%= entityTableName %> entity WHERE entity.<%=
|
|
107
|
+
@Query("SELECT * FROM <%= entityTableName %> entity WHERE entity.<%= relationship.joinColumnNames[0] %> = :id")
|
|
112
108
|
Flux<<%= persistClass %>> findBy<%= relationship.relationshipNameCapitalized %>(<%= primaryKey.type %> id);
|
|
113
109
|
|
|
114
|
-
@Query("SELECT * FROM <%= entityTableName %> entity WHERE entity.<%=
|
|
110
|
+
@Query("SELECT * FROM <%= entityTableName %> entity WHERE entity.<%= relationship.joinColumnNames[0] %> IS NULL")
|
|
115
111
|
Flux<<%= persistClass %>> findAllWhere<%= relationship.relationshipNameCapitalized %>IsNull();
|
|
116
112
|
<%_ } else if (relationship.shouldWriteJoinTable) { _%>
|
|
117
113
|
|
|
118
|
-
@Query("SELECT entity.* FROM <%= entityTableName %> entity JOIN <%= relationship.joinTable.name %> joinTable ON entity.
|
|
114
|
+
@Query("SELECT entity.* FROM <%= entityTableName %> entity JOIN <%= relationship.joinTable.name %> joinTable ON entity.<%= primaryKey.fields[0].columnName %> = joinTable.<%= relationship.joinColumnNames[0] %> WHERE joinTable.<%= relationship.joinColumnNames[0] %> = :id")
|
|
119
115
|
Flux<<%= persistClass %>> findBy<%= relationship.relationshipNameCapitalized %>(<%= primaryKey.type %> id);
|
|
120
116
|
<%_ } else if (relationship.relationshipOneToOne && !ownerSide) {
|
|
121
117
|
let otherEntityRelationshipName = relationship.otherEntityRelationshipName;
|
|
122
118
|
let otherEntityTableName = relationship.otherEntityTableName;
|
|
123
119
|
_%>
|
|
124
120
|
|
|
125
|
-
@Query("SELECT * FROM <%= entityTableName %> entity WHERE entity.
|
|
121
|
+
@Query("SELECT * FROM <%= entityTableName %> entity WHERE entity.<%= primaryKey.fields[0].columnName %> not in (select <%= relationship.joinColumnNames[0]%> from <%= otherEntityTableName %>)")
|
|
126
122
|
Flux<<%= persistClass %>> findAllWhere<%= relationship.relationshipNameCapitalized %>IsNull();
|
|
127
123
|
<%_ } _%>
|
|
128
124
|
<%_ } _%>
|
|
@@ -138,10 +134,8 @@ public interface <%= entityClass %>Repository extends <% if (databaseTypeSql) {
|
|
|
138
134
|
|
|
139
135
|
@Override
|
|
140
136
|
Mono<Void> deleteById(<%= primaryKey.type %> id);
|
|
141
|
-
<%_ } _%>
|
|
142
|
-
|
|
143
137
|
}
|
|
144
|
-
|
|
138
|
+
|
|
145
139
|
interface <%= entityClass %>RepositoryInternal {
|
|
146
140
|
<S extends <%= persistClass %>> Mono<S> save(S entity);
|
|
147
141
|
|
|
@@ -150,10 +144,10 @@ interface <%= entityClass %>RepositoryInternal {
|
|
|
150
144
|
Flux<<%= persistClass %>> findAll();
|
|
151
145
|
|
|
152
146
|
Mono<<%= persistClass %>> findById(<%= primaryKey.type %> id);
|
|
147
|
+
// this is not supported at the moment because of https://github.com/jhipster/generator-jhipster/issues/18269
|
|
148
|
+
// Flux<<%= persistClass %>> findAllBy(Pageable pageable, Criteria criteria);
|
|
153
149
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
<%_ if (fieldsContainOwnerManyToMany) { _%>
|
|
150
|
+
<%_ if (implementsEagerLoadApis) { _%>
|
|
157
151
|
|
|
158
152
|
Mono<<%= persistClass %>> findOneWithEagerRelationships(<%= primaryKey.type %> id);
|
|
159
153
|
|
|
@@ -162,8 +156,6 @@ interface <%= entityClass %>RepositoryInternal {
|
|
|
162
156
|
Flux<<%= persistClass %>> findAllWithEagerRelationships(Pageable page);
|
|
163
157
|
|
|
164
158
|
Mono<Void> deleteById(<%= primaryKey.type %> id);
|
|
165
|
-
|
|
166
159
|
<%_ } _%>
|
|
167
|
-
|
|
168
|
-
}
|
|
169
160
|
<%_ } _%>
|
|
161
|
+
}
|