Tenho uma tabela no banco com a seguinte estrutura:
CREATE TABLE ESTADO
(
ID SERIAL NOT NULL,
SIGLA VARCHAR(5) NOT NULL,
NOME VARCHAR(30) NOT NULL,
EXCLUSAO CHAR(1) DEFAULT '1', --(0) PARA EXCLUÍDO E (1) PARA EXCLUÍDO
DATA_ALTERACAO TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
OBSERVACAO VARCHAR(50) NOT NULL,
CONSTRAINT ESTADO_PKEY PRIMARY KEY (ID),
CONSTRAINT ESTADO_UNIQ UNIQUE (SIGLA)
);
Em que desejo que o campo EXCLUSAO gere automaticamente em cada insert o valor 1, ou seja, o programador não precisaria colocar no insert o EXCLUSAO.
Tbm tenho um campo DATA_ALTERACAO que gera automaticamente a cada insert a data e hora do servidor.
Pois bem, estou usando (aprendendo) JPA e defini minha classe da seguinte forma:
@Entity
public class Estado
{
@Id
@Column (insertable = false)
@GeneratedValue (strategy = GenerationType.SEQUENCE, generator = "estado_id_seq")
private int id;
private String sigla;
private String nome;
@Column (insertable = false)
@GeneratedValue (strategy = GenerationType.IDENTITY)
private int exclusao;
private String observacao;
@Temporal(TemporalType.TIMESTAMP)
@Column (insertable = false)
@GeneratedValue (strategy = GenerationType.SEQUENCE)
private Date data_alteracao;
...Getters and Setters
}
Dessa forma, todo vez que tento persistir aparece um erro:
ERRO: valor nulo na coluna “data_alteracao” viola a restrição não-nulaError Code: 0
Call:INSERT INTO ESTADO (EXCLUSAO, OBSERVACAO, NOME, DATA_ALTERACAO, SIGLA) VALUES (?, ?, ?, ?, ?)
bind => [0, , AMAZONAS, null, AM]
Além de exibir msg informando que a data naum pode ser not null, pode-se notar q o valor p exclusão vai como 0 (zero), quando na realidade defini no SGBD valor 1 (um).
O q estou fazendo errado? O q estou querendo fazer é de outra forma?
Desde já agradeço a atenção e colaboração de todos!