Estou engatinhando em JPA, tentei fazer um exemplo. Estou usando o Postgres 8.2 como base de dados. Então criei um tabela com a seguinte estrutura:
CREATE SEQUENCE seq_sushi;
CREATE TABLE sushi
(
name varchar(20) NOT NULL,
id SMALLINT DEFAULT NEXTVAL('seq_sushi'),
CONSTRAINT sushi_pkey PRIMARY KEY (id)
);
e minha classe Modelo está assim:
//imports...
@Entity
public class Sushi
{
@Id
@Column(insertable = false)
private int id;
private String name;
//Getters e Setters...
}
Depois faço o cadastro de dois sushis, sendo q insiro apenas o name (não coloco valor p o id pq é sequence), mas a primeira vez e deu um erro. Fui Verificar no banco e cadastrou o primeiro sushi, mas o segundo sushi não tinha sido inserido. Fui ler o erro e vi a aplicação (JPA) estava tentando inserir o mesmo número de id (zero) do primeiro sushi para o segundo.
Resolvi testar inserindo numero de id diferentes para os dois e dessa vez ambos estão sendo inseridos, mas não quero passar número de id, quero q banco controle e gere essa sequencia.
Analisando o código acima, alguém poderia me ajudar. Estou fazendo algo errado?
Desde já agradeço a atenção e colaboração de todos!