Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add where clause from data jpa criteria when reactive #13515

Merged
merged 3 commits into from
Jan 15, 2021

Conversation

Tcharl
Copy link
Contributor

@Tcharl Tcharl commented Jan 14, 2021

Reactive did not set 'where' clause in JDBC query when findById was executed, thus throwing an error when when jhipster displayed detail or update page


Please make sure the below checklist is followed for Pull Requests.

When you are still working on the PR, consider converting it to Draft (bellow reviewers) and adding skip-ci label, you can still see CI build result at your branch.

@Tcharl Tcharl force-pushed the reactive2 branch 2 times, most recently from 76765ab to 995f19d Compare January 14, 2021 18:08
@mraible
Copy link
Contributor

mraible commented Jan 15, 2021

I tested this branch with the following JDL:

application {
  config {
    baseName blog,
    reactive true,
    applicationType monolith,
    authenticationType oauth2,
    packageName com.jhipster.demo.blog,
    prodDatabaseType mysql,
    cacheProvider hazelcast,
    buildTool maven,
    clientFramework angular,
    testFrameworks [protractor]
  }
  entities *
}

entity Blog {
  name String required minlength(3)
  handle String required minlength(2)
}

entity Post {
  title String required
  content TextBlob required
  date Instant required
}

entity Tag {
  name String required minlength(2)
}

relationship ManyToOne {
  Blog{user(login)} to User
  Post{blog(name)} to Blog
}

relationship ManyToMany {
  Post{tag(name)} to Tag{entry}
}

paginate Post, Tag with infinite-scroll

Works great and npm run e2e passes!

@mraible
Copy link
Contributor

mraible commented Jan 15, 2021

I confirmed it works in a microservices environment as well with the following JDL:

application {
  config {
    baseName gateway
    reactive true
    packageName com.okta.developer.gateway
    applicationType gateway
    authenticationType oauth2
    buildTool gradle
    clientFramework vue
    prodDatabaseType postgresql
    serviceDiscoveryType eureka
    testFrameworks [protractor]
  }
  entities Blog, Post, Tag, Product
}

application {
  config {
    baseName blog
    reactive true
    packageName com.okta.developer.blog
    applicationType microservice
    authenticationType oauth2
    buildTool gradle
    prodDatabaseType postgresql 
    serverPort 8081
    serviceDiscoveryType eureka
  }
  entities Blog, Post, Tag
}

application {
  config {
    baseName store
    reactive true
    packageName com.okta.developer.store
    applicationType microservice
    authenticationType oauth2
    buildTool gradle
    databaseType mongodb
    devDatabaseType mongodb
    prodDatabaseType mongodb
    enableHibernateCache false
    serverPort 8082
    serviceDiscoveryType eureka
  }
  entities Product
}

entity Blog {
  name String required minlength(3)
  handle String required minlength(2)
}

entity Post {
  title String required
  content TextBlob required
  date Instant required
}

entity Tag {
  name String required minlength(2)
}

entity Product {
  title String required
  price BigDecimal required min(0)
  image ImageBlob
}

relationship ManyToOne {
  Blog{user(login)} to User
  Post{blog(name)} to Blog
}

relationship ManyToMany {
  Post{tag(name)} to Tag{post}
}

paginate Post, Tag with infinite-scroll
paginate Product with pagination

microservice Product with store
microservice Blog, Post, Tag with blog

deployment {
  deploymentType docker-compose
  appsFolders [gateway, blog, store]
  dockerRepositoryName "mraible"
}

@Tcharl
Copy link
Contributor Author

Tcharl commented Jan 15, 2021

The failing CI steps are not related to reactive at all: should this one be merged?

@Tcharl
Copy link
Contributor Author

Tcharl commented Jan 15, 2021

FYI, tested with this jdl:


application {
  config {
    baseName followup,
    applicationType monolith,
    packageName com.corp,
    authenticationType oauth2,
    devDatabaseType h2Disk,
    prodDatabaseType mssql,
    clientFramework react,
    reactive true,
    testFrameworks [cucumber, cypress],
    enableSwaggerCodegen true,
  }
  entities *
}

entity Member {
  identifier String
  name String
  surname String
  internalMail String pattern(/^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/)
  platformMail String pattern(/^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/)
  arrivalDate LocalDate
  departureDate LocalDate
  officialRole Role
  company Company
  hasComputer Boolean
  overrideAverageDailyRate Integer min(0) max(2000)
}

entity Rate {
 company Company,
 role Role,
 location Location,
 averageDailyRate Integer min(0) max(2000)
}

enum Location {
FR,
RO,
MAURITUS
}

enum Role {
 PO("Product owner"),
 PPO("Proxy product owner"),
 SCRUM_MASTER("Scrum master"),
 DEV("Developper"),
 TECH_LEAD("Tech lead"),
 SEC_PARTNER("Security partner"),
 DELIVERY_LEAD("Delivery lead"),
 ENGINEERING_LEAD("Engineering lead"),
 DATA_ENG("Data engineer"),
 PBI_EXPERT("Powerbi designer"),
 UXUI("UX-UI"),
 MODEL_BUILDER("Anaplan model builder")
}

enum Company {
 X,
 Y
}

relationship OneToMany {
  Member{workloads(description)} to Workload{member(name)}
  Product{workloads(description)} to Workload{product(name)}
  Product{cycles(name)} to Cycle{product(name)}
}

entity Product {
  name String
}

entity Cycle {
  name String unique required
  startDate LocalDate
  endDate LocalDate
}

entity Workload {
  description String required unique
  percentage Integer min(1) max(100)
  role Role
}

dto * with mapstruct
service all with serviceImpl

@mraible
Copy link
Contributor

mraible commented Jan 15, 2021

I'm +1 for merging!

@DanielFran DanielFran merged commit 2f55149 into jhipster:main Jan 15, 2021
@pascalgrimaud pascalgrimaud added this to the 7.0.0-beta.1 milestone Jan 16, 2021
sendilkumarn added a commit to jhipster/jhipster-kotlin that referenced this pull request Feb 27, 2021
sendilkumarn added a commit to jhipster/jhipster-kotlin that referenced this pull request Apr 18, 2021
sendilkumarn added a commit to jhipster/jhipster-kotlin that referenced this pull request Apr 18, 2021
* finished first cut for 7.0.0 release

* feat: upgrade the entity generator to v7 beta

* feat: upgrade server generator to v7

* feat: upgrader server generator to v7

* feat: update configuration to v7

* feat: migrate web/rest to v7

* feat: upgrade security to v7.0

* migrate repository tov v7 beta

* migrate service to v7 beta

* feat: upgrade config test directory to version 7

* migrate cucumber to v7

* feat: migrate gateway to v7

* feat: migrate repository test to v7

* feat: migrate security/jwt to v7

* feat: migrate cookie token extractor to v7

* feat: migrate security to v7

* feat: migrate mapper to v7

* feat: migrate service and test service to v7

* feat: migrate rest resources to v7

* feat: migrate Cassandra config test utils to v7

* fix: type configuration fixes

* feat: migrate test and test integration scripts to v7

* migrate workflows to v7 step 1

* migrate tests and integration scripts

* feat: migrate files to v7

* fix: use proper generic import

* feat: upgrade other files to v7

* feat: update expected-files to v7

* feat: update app spec to v7

* feat: test updates and remove import static

* add missing jhi_clone path

* fix: lint fixes

* fix ejs lint error

* fix: remove duplicate sonar analysis

* fix template lint issues

* feat: fix build issues

* fix: entity server unit test

* fix: failing test case because of missing prettier transform

* remove withAudit configuration

* feat: add postWriting in server configuration

* rename primaryKeyType to primaryKey.type

* rename JHipsterBlockHoundIntegration

* compilation fixes

* fix: some more bugs

* fix: add fun modifier for functions

* fix: remove extra braces and use proper field accessor

* fix: add a line break between package and import

* fix: add secondary constructor for the UserDTO

* fix: use proper variable declaration in patch_tempalte

* fix di and type selection

* fix: add variable name

* fix: migrate entity generator to v7 and few other fixes

* fix: make converters as an object

* fix: remove trailing commas

* fix: remove return type reference

* fix: use kotlin class reference

* fix: infer type

* fix build file issue

* fix: template string

* fix: mongodb kafka app generation

* fix: enity configuration and lint issues

* remove couchbase and fix kapt

* fix: react ci build issues

* lint fix

* fix generated services and entities

* fix react builds and remove couchbase builds

* make authorities proper

* Upgrade kotlin to latest version

* fix test failures in react default application

* lint fixes and failing unit test fixes

* fix: add a proper script folder

* fix: update cloned path for angular ci

* revert change

* fix more type issues

* Update EntityResourceIT.kt.ejs

* fix react ci tests

* Update PublicUserResource.kt.ejs

* webflux fixes

* feat/webflux fixes for v7 migration

* few more fixes

* fix cucumber tests

* replace proper cassandra version variable

* fix: workflow and kotlinify

* feat: add support for --pk-type

part of jhipster/generator-jhipster#13296

* Add support to `@MapstructExpression`

Refer jhipster/generator-jhipster#13195

* fix: Replace deprecated `StringUtils.isEmpty()` by `ObjectUtils.isEmpty()` and cover its usage with tests

Refer jhipster/generator-jhipster#13369

* chore: Change from 'idx in' to 'item of' for fields and relationships at server templates.

Refer jhipster/generator-jhipster#13382

* fix: Neo4j relation rework

Refer jhipster/generator-jhipster#13106

* fix: Swagger UI for reactive applications

Refer jhipster/generator-jhipster#13409

* fix: sonar code smells

Refer jhipster/generator-jhipster#13408

* chore: typo updates

* feat: Add custom claim converter in a microservice with oauth2

Refer jhipster/generator-jhipster#12609

* fix: import fixes for custom claim converter test

* fix: Fix reactive tests by assigning @NotNull a default message

Refer: jhipster/generator-jhipster#13483

* fix: R2DBC with OAuth

Refer jhipster/generator-jhipster#13485

* fix: Remove Transactional when using no db

Refer:  jhipster/generator-jhipster#13489

* fix: Ensure /websocket/tracker/ cant bypass

Refer: jhipster/generator-jhipster#13440

* fix: Fix R2DBC with OAuth

Refer: jhipster/generator-jhipster#13493

* chore: fix minor code smells

* fix: Broken Swagger with Microservice

Refer: jhipster/generator-jhipster#13446

* fix: minor updates

Refer: jhipster/generator-jhipster#13495

* fix: Change save template to use precedence

Refer: jhipster/generator-jhipster#12802:
jhipster/generator-jhipster#12802

* fix: add where clause from data jpa criteria when reactive

Refer: jhipster/generator-jhipster#13515

* fix: update dependencies and linting fixes

* fix: Update build pipeline versions

* fix: Angular workflow

* fix: copy error

* fix: missing otherEntityRelationshipNamePlural variable

* fix: ci script

* fix: remove unsupported hr language

* fix: more angular ci fixes

* fix: more angular ci fixes

* fix: move CustomClaimConverter to security package

* fix: expected files

* fix: ci to use installed version of jhipster

* rename webpack profile to webapp

* fix: refactor ci test

* fix: scripts path

* fix use proper path

* fix: add script level JHI_HOME

* fix: use correct  kotlin-samples folder

* chore: [ci] update chmod

* fix: missing variable and correct file location

* chore: [CI] add JHI_SCRIPTS location

* chore: [CI] add JHI_CLONED_SCRIPTS location

* chore: [CI] add HOME location

* chore: [CI] add HOME location

* Use tilde for home folder

* remove 13-replace-jhipster-version script

* temp: check scripts folder

* fix: use local scripts

* chore: [CI] add default work directory

* fix: use leading comma

* chore: [CI] remove additional app test

* minor fixes

* fix: use proper primary key name

* fix: replace id with primaryKey.type

* chore: [CI] add react workflow

* chore: [CI] upgrade angular workflow

* chore: [CI] add webflux workflow

* fix: entityResource

* chore: [CI] more workflow changes

* chore: [CI] Remove prettier check

* chore: [CI] fix react and webflux workflow

* fix: add UUID import for cassandra

* chore: [CI] use proper script for webflux

* fix: use apply instead of constructor params

* fix: change the constructor params

* fix: add UUIDFilter import for entity criteria

* fix: make queryservice to use properly typed filter

* fix: tests to have proper primarykey reference

* fix: use proper type for filter in EntityQueryService

* fix: type issues

* fix: redis configuration of test containers

* fix: generator entity spec test

* fix: entity post fix

* chore: [Test] Lint fixes

* chore: remove maven cucumber tests

* fix: sql webflux issues

* fix: use property accessor instead of getter

* chore: CI remove kafka test case

* fix: remove string utils

* Update EntityRepositoryInternalImpl_reactive.kt.ejs

* fix: add test fixes and other converters

* feat: migrate templates to v7

* lint fixes

* fix: update dependencies

* update package lock with npm v7

* fix: mocha tests

* lint fixes

* fix: double ejs tags

* fix: removed extra ejs tag

* fix: refactor missing type definition

* fix: use proper class variable

* fix: import repository always

* fix: clean up tests

* fix: use proper variable

* fix: remove mock builder standalone setup

* fix: reactive templates

* fix: remove reactive block

* fix: reactive modify server open api filter

* fix: reactive gateway

* fix: more reactive fixes

* fix: reactive file generation

* fix: no return in save template

* fix more reactive test

* fix: remove deprecated size configuration

* fix row mapper type checks

* fix: tests in custom claim converter

* fix: custom claim converter test

* fix: columnConverter for webflux r2dbc

* fix: extra parentheis

* fix: null checks

* fix: use empty Set instead of null

* fix: tests and persistence constructor

* fix: add coroutines lib for webflux

* fix: add kotlin extensions library

* fix: add reactor dependencies for maven

* fix: remove mariadb converter issue

* fix: webflux build and jdk version

* fix: generator unit test

* fix: install generator after npm ci

* fix: change reactive containers for psql

* fix: remove tc in the database url

* fix: remove reactive sql tests

* chore: remove azure pipelines
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants