Отношения OneToMany, созданные с помощью JHipster, вызывают исключения

Я написал следующий JDL:

enter code here

entity A {
  name String required
}

entity B {
  name String unique required,
}

relationship OneToMany {
  B{children} to A{owner}
}

application {
  config {
    applicationType monolith
    databaseType sql
  }
  entities *
  dto * with mapstruct
  service * with serviceClass
}

Однако сгенерированный код выдает следующее:

/src/main/java/foo/service/mapper/A.java:13: Предупреждение: несопоставленные целевые дочерние элементы: «дети, удалить детей». Сопоставление свойства «Владелец BDTO» со свойством «Владелец B». Произошло в «E toEntity (D dto)» в «EntityMapper». открытый интерфейс A расширяет EntityMapper<ADTO, A> { ^ /src/main/java/foo/service/mapper/AMapper.java:13: Предупреждение: несопоставленные целевые свойства: «дети, удалить детей». Сопоставление свойства «Владелец BDTO» со свойством «Владелец B». Произошло при 'void partialUpdate(E entity, D dto)' в 'EntityMapper'. открытый интерфейс AMapper расширяет EntityMapper<ADTO, A> { ^ /src/main/java/foo/service/mapper/BMapper.java:13: Предупреждение: несопоставленные целевые свойства: «дети, удалить детей». Произошло в «E toEntity (D dto)» в «EntityMapper». открытый интерфейс BMapper расширяет EntityMapper<BDTO, B> { ^ /src/main/java/foo/service/mapper/BMapper.java:13: Предупреждение: несопоставленные целевые свойства: «дети, удалить детей». Произошло при 'void partialUpdate(E entity, D dto)' в 'EntityMapper'. открытый интерфейс ModelMapper расширяет EntityMapper<BDTO, B> { ^ 4 Варнунген

Точно так же при попытке доступа к соответствующей конечной точке из Hibernate выдается исключение:

ОШИБКА 30510 --- [XNIO-1 задача-3] foo.service.AService: исключение в findAll() с причиной = 'org.hibernate.exception.SQLGrammarException: не удалось подготовить оператор' и исключение = 'не удалось подготовить оператор; SQL [выберите a0_.id как id1_1_, a0_.name как name2_1_, a0_.owner_id как owner_id4_1_, a0_.value как value3_1_ из a0_]; вложенным исключением является org.hibernate.exception.SQLGrammarException: не удалось подготовить оператор org.springframework.dao.InvalidDataAccessResourceUsageException: не удалось подготовить оператор; SQL [выберите a0_.id как id1_1_, a0_.name как name2_1_, a0_.owner_id как owner_id4_1_, a0_.value как value3_1_ из a0_]; вложенным исключением является org.hibernate.exception.SQLGrammarException: не удалось подготовить оператор в org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:259) в org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:233) в org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) в org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) в org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) в org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) в org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:174) в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) в org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) в org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) в org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) в jdk.proxy3/jdk.proxy3.$Proxy200.findAll (неизвестный источник) в foo.service.AService.findAll(AService.java:88) в foo.service.AService$$FastClassBySpringCGLIB$$4afc8e16.invoke() в org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ....

Теперь мой вопрос будет заключаться в том, что я здесь делаю неправильно (или это проблема с jHipster) и как я могу это исправить?

Ваше здоровье

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Покопавшись в сгенерированном коде, я понял, что Gnerated Repository Class был пуст, поэтому я приступил к созданию в нем соответствующих методов. Однако запрос JPA по-прежнему выдавал ошибку, но собственный запрос сделал свое дело. Итак, теперь мне интересно, почему jHipster не сгенерировал код, а также мне интересно, почему JPA не может правильно построить запрос. Однако я вполне уверен, что найду ответ, по крайней мере, на последний вопрос.

Другие вопросы по теме