Ir para conteúdo
Fórum Script Brasil

yago_r

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre yago_r

yago_r's Achievements

0

Reputação

  1. Consegui resolver atualizando o Spring Boot para a última versão e adicionando a seguinte dependência no pom.xml: <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>6.2.3.Final</version> </dependency>
  2. Estou trabalhando com tabelas particionadas usando Postgres e Spring Boot, consegui fazer a partição e nos testes que eu fiz o método GET e POST está funcionando do jeito que eu queria, porém gostaria de ajuda para resolver o seguinte erro, que é retornado quando eu inicio a aplicação: GenerationTarget encountered exception accepting command : Error executing DDL "create table teste (data date not null, id int4 not null, nome varchar(255), primary key (data, id))" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table teste (data date not null, id int4 not null, nome varchar(255), primary key (data, id))" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] O passo a passo do que eu fiz antes do erro aparecer: Criei o Model principal, que fará referência a tabela particionada: @Entity @Table(name = "teste") @IdClass(TesteId.class) @Getter @Setter @NoArgsConstructor @AllArgsConstructor public class Teste { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "teste_id_seq") @SequenceGenerator(name = "teste_id_seq", sequenceName = "teste_id_seq", initialValue = 1, allocationSize = 1) private int id; @Id private LocalDate data; private String nome; } Criei a classe do id composto: @Getter @Setter @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode public class TesteId implements Serializable { private static final long serialVersionUID = 1L; private int id; private LocalDate data; } E então iniciei a aplicação, tudo rodou normalmente. Após isso pausei a aplicação e particionei a tabela 'teste' seguindo a documentação do Postgres: https://www.postgresql.org/docs/current/ddl-partitioning.html Tópico: 5.11.2.1. Example E minha tabela ficou da seguinte forma: CREATE TABLE IF NOT EXISTS public.teste ( data date NOT NULL, id integer NOT NULL, nome character varying(255) COLLATE pg_catalog."default", CONSTRAINT teste_pkey PRIMARY KEY (data, id) ) PARTITION BY RANGE (data); Então eu iniciei a aplicação novamente e o seguinte erro foi impresso no log do Spring Boot: WARN 16668 --- [ main] o.h.t.s.i.ExceptionHandlerLoggedImpl : GenerationTarget encountered exception accepting command : Error executing DDL "create table teste (data date not null, id int4 not null, nome varchar(255), primary key (data, id))" via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table teste (data date not null, id int4 not null, nome varchar(255), primary key (data, id))" via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetTo Database.java:67) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigra tor.java:562) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigr ator.java:507) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] Meu application.properties está assim: spring.datasource.url=jdbc:postgresql://localhost:5432/teste spring.datasource.username=postgres spring.datasource.password=postgres spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect spring.jpa.hibernate.ddl-auto=update spring.jpa.defer-datasource-initialization=true spring.datasource.driver-class-name=org.postgresql.Driver Eu sei que alterar o 'spring.jpa.hibernate.ddl-auto' para 'none' resolveria o problema, porém não é a solução que eu desejo, já que não quero gerenciar manualmente todas as alterações no banco de dados.
×
×
  • Criar Novo...