oracle.jdbc.OracleDatabaseException: ORA-02289: a sequência não existe

Boa tarde pessoal criei uma nova conexão no oracle para rodar o hibernate com spring e ao tentar gravar formulario esta com problamas de sequence;oracle.jdbc.OracleDatabaseException: ORA-02289: a sequência não existe

veja minha classe;
@Entity
public class Cadastro implements Serializable {

public static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String conta;
private String vencimento;
private String parcelas;
private String valor;

public long getId() {
    return id;
}

public void setId(long id) {
    this.id = id;
}

public String getConta() {
    return conta;
}

public void setConta(String conta) {
    this.conta = conta;
}

public String getVencimento() {
    return vencimento;
}

public void setVencimento(String vencimento) {
    this.vencimento = vencimento;
}

public String getParcelas() {
    return parcelas;
}

public void setParcelas(String parcelas) {
    this.parcelas = parcelas;
}

public String getValor() {
    return valor;
}

public void setValor(String valor) {
    this.valor = valor;
}

}

Nao utilizo nenhum arquivo de configuração pra hibernate… antes na outra conexão funcionava

OBS: as tabela foi criado com sucesso no banco

O oracle não possui ID auto incremento como no mysql, por exemplo. Com isso, vc deve criar sequences no banco e utilizar no seu mapeamento. Mais ou menos assim:

@Entity
@SequenceGenerator(name = "sequence", sequenceName = "SEQ_SUA_ENTIDADE", allocationSize = 1, initialValue = 1)
public class SuaEntidade {
	
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE)
	private long id;
}

Bom dia Lucas ainda nao deu certo olha como fiz;

@Entity
@SequenceGenerator(name = "sequence", sequenceName = "SEQ_cadastro", allocationSize = 1, initialValue = 1)
public class Cadastro implements Serializable {

    public static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private long id;
    private String conta;
    private String vencimento;
    private String parcelas;
    private String valor;

Reparei que no @GeneratedValue vc não especificou a sequence que vai usar. Faça assim:

@Entity
@SequenceGenerator(name = "SEQ_CADASTRO", sequenceName = "SEQ_CADASTRO", allocationSize = 1, initialValue = 1)
public class Cadastro implements Serializable {

    public static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(generator = "SEQ_CADASTRO", strategy = GenerationType.SEQUENCE)
    private long id;

O generator em @GeneratedValue se refere ao name de @SequenceGenerator.

Falha minha que tb não coloquei no exemplo da minha resposta anterior

vou tentar preciso
recriar a table novamente excluir do oracle?

Precisa não. Basta alterar a classe e testar de novo.

1 curtida

vou testar aqui ja te falo obrigado meu amigo

Deu certo Lucas muito obrigado pelo sua ajuda

1 curtida