1
resposta

Circular depends-on relationship between 'flyway' and 'entityManagerFactory'

Boa noite galera, segui os passos da aula e tomei a exception abaixo. Alguém sabe como resolver? Já procurei bastante coisa na internet, fiz testes alterando versão das dependências, comentando a linha defer-datasource-initialization: true no application.yml e nada também. Seguem dados para simulação e análise:

Error creating bean with name 'flyway' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Circular depends-on relationship between 'flyway' and 'entityManagerFactory'
### Versões 
<springboot.version>2.7.2</springboot.version>
<java.version>11</java.version>
<kotlin.version>1.6.21</kotlin.version>
<flywaycore.version>8.5.13</flywaycore.version>
<h2.version>2.1.214</h2.version>

### application.yml
spring:
  datasource:
    driverClassName: org.h2.Driver
    url: jdbc:h2:mem:forum
    username: sa
    password:
  jpa:
    defer-datasource-initialization: true
    database-platform: org.hibernate.dialect.H2Dialect
    properties:
      hibernate:
        show_sql: true
        format_sql: true
  h2:
    console:
      enabled: true

Desde já, agradeço!!

1 resposta

Olá Bruno, tudo bem?

Uma solução para esse problema é definir a ordem de inicialização das dependências. No seu caso, você pode tentar definir a ordem de inicialização do Flyway antes do entityManagerFactory.

Para fazer isso, você pode adicionar a seguinte propriedade no seu arquivo application.yml:

spring:
  main:
    allow-circular-references: true
  flyway:
    depends-on: entityManagerFactory

Essa propriedade indica que o Flyway deve ser inicializado antes do entityManagerFactory.

Espero que essa solução ajude a resolver o seu problema. Se ainda assim não funcionar, tente verificar se as versões das dependências estão corretas e se não há outras dependências conflitantes.

Não consegui responder a mensagem com o contexto existente.

Espero ter ajudado e bons estudos!