Me parace que você está esquecendo de associar o “detail” ao “master”, algo como: dispensaPrescricaoItem.setDispensaPrescricao(dispensaPrescricao);
Certo?
Pablo_Eteg
andrefariagomes:
Oi Pablo,
Me parace que você está esquecendo de associar o “detail” ao “master”, algo como: dispensaPrescricaoItem.setDispensaPrescricao(dispensaPrescricao);
Certo?
Na verdade é isto o que estou fazendo no for antes do saveOrUpdate mas mesmo assim
o erro persiste.
andrefariagomes
Então talvez você não tenha associado uma sequence ao DispensaPrescricao…
e banco de dados está tentando gravar null na PrimaryKey o que gera a violção.
É um objeto novo, ou você alterando?
Está salvado o pai antes do filho? quero dizer o DispensaPrescricao antes do DispensaPrescricaoItem?
Se não pode tentar usar @Cascade
Então talvez você não tenha associado uma sequence ao DispensaPrescricao…
e banco de dados está tentando gravar null na PrimaryKey o que gera a violção.
É um objeto novo, ou você alterando?
Está salvado o pai antes do filho? quero dizer o DispensaPrescricao antes do DispensaPrescricaoItem?
Se não pode tentar usar @Cascade
Sequences são usadas por alguns banco de dados como o oracle, por exemplo, para armazenar números, geralmente são utilizadas para gerar valores de primary keys, no seu caso, pelo que vi no seu mapeamento está gerando uma abordagem IDENTITY, então não precisa declarar mesmo a sequence.
No exemplo que postei a cima, cada vez que incluo uma registro na tabela PESSOA, a sequence é invocada, e o valor de retorno é associado à chave primaria do novo registro e o valor da sequence é incrementado para que na próxima vez que for envocada o valor seja diferente.
Derrepende vale a pena verificar se o banco de dados que você está usando suporta esse tipo de Generator.
Você tem certeza que valor de dispensaPrescricao.getId() que você associou ao dispensaPrescricaoItem não está nulo?
Pablo_Eteg
Consegui resolver.
O problema era que na minha página eu copiava o arrayList
alterava seu dados e depois dava um addAll na lista que eu ia
gravar no banco.
Parei de fazer o addAll e atribuí valor por valor em um loop
no objeto que ia ser persistido no banco aih funcionou.
Acho que ao dar addAll o hibernate não conseguia associar a minha lista com o banco de Dados.