[Resolvido] Inserir vários objetos ao mesmo tempo no Banco de Dados [JPA + Hibernate]

9 respostas
Mstanguine

Ola a todos.

Estou desenvolvendo um projeto academico que se trata de um gerenciamento de bibliotecas.
Estou totalemente travado em uma questão. Gostaria de opniões para pelo menos começar a andar nessa parte.
Vou tentar resumir.

-Tem o formulário de cadastro de livros.
-Nele tem o campo quantidade (exemplares).

Até ai, tudo bem, funciona normal.
Mas o que eu gostaria de fazer, é que confrome a quantidade inserida e feito o submit do formulário, fosse persistido no banco réplicas dos dados do objeto enviado.
Para que cada livro tivesse um Id único, que eu usaria como o Tombo do livro.

Na verdade não sei se é correto esse tipo de processamento.
Pois a idéia, seria para que se chegasse uma leva de 50 livros, não seria necessário cadastrar um por um, os objetos fossem replicados ou algo do tipo.

O sistema é na plataforma Web, usando apenas JSP, CSS e JavaScript (jQuery).
Banco de dados é MS SQL Server 2008.

Se alguem poder dar uma clareada nessa parte, agradeceria muito. =)

9 Respostas

ssh

é simples, pelo que entendi você quer que cada livro tenho um ID único, mesmo sendo o mesmo nome e mesmo autor. certo?

insere ele repetidas vezes, e elimine a coluna quantidade de exemplares da sua tabela.

para saber quantos livros ainda resta você da um “SELECT COUNT”.

abs

renanreismartins

vc quer que o formulario tenha algo como dados do livro e quantidade de exemplares. Entao gravar no banco o livro repetidas vezes até atingir o valor digitado em quantidade de exemplares?

Ex:

qtd de Exemplares = 2
nome = Java como programar
ai salva…

no banco:
id: 1 - titulo: Java como programar
id: 2 - titulo: Java como programar

?

abrasssss

Mstanguine

Obrigado pelas respostas! =)

Acho que entendi: posso fazer um Loop com um insert dentro.
Onde esse Loop seria pela quantidade de “Exemplares” informados.

Mas isso é correto? Alias, uma boa prática?

O que me veio a mente, seria criar um Array de Objetos, e a cada elemento desse Array, inserir uma linha na tabela.
Mas não sei se é possível, uma vez que todos os objetos desse Array, seriam identicos, e além disso correria o risco de ser salvo o array inteiro na tabela, não cada elemento… =S

Mstanguine

renanreismartins:
vc quer que o formulario tenha algo como dados do livro e quantidade de exemplares. Entao gravar no banco o livro repetidas vezes até atingir o valor digitado em quantidade de exemplares?

Ex:

qtd de Exemplares = 2
nome = Java como programar
ai salva…

no banco:
id: 1 - titulo: Java como programar
id: 2 - titulo: Java como programar

?

abrasssss

Exato renanreismartins.
Inserir N vezes no banco o mesmo livro.
Onde N é o valor informado em quantidade/exemplares.

renanreismartins

se um objeto nao tem diferença nenhuma do outro pq gravar duas vezes? n seria mais logico colocar um campo quantidadeDeExemplares nesse objeto/tabela?

abrasss

pmlm

renanreismartins:
se um objeto nao tem diferença nenhuma do outro pq gravar duas vezes? n seria mais logico colocar um campo quantidadeDeExemplares nesse objeto/tabela?

abrasss


Se cada exemplar do livro precisa de um id unico, nao.

Mas eu faria com duas tabelas: Livro e Exemplar.

renanreismartins

pmim, para o caso de codigo de barras diferentes entre um exemplar de livro certo?

em regras de negocio como essa concordo com a sua abordagem.

abrasss

pmlm

renanreismartins:
pmim, para o caso de codigo de barras diferentes entre um exemplar de livro certo?

E não só. Neste caso concreto é uma biblioteca. E dois exemplares de um mesmo livro devem ter IDs diferentes para que possam ser requisitados na mesma altura por diferentes pessoas.

Mstanguine

pmlm:
renanreismartins:
pmim, para o caso de codigo de barras diferentes entre um exemplar de livro certo?

E não só. Neste caso concreto é uma biblioteca. E dois exemplares de um mesmo livro devem ter IDs diferentes para que possam ser requisitados na mesma altura por diferentes pessoas.

Essa é a idéia mesmo, por eu ter que colocar um ID diferente para cada livro fisicamente, mesmo os dados dele sendo igual.

Obrigado a todos pelas respostas e esclarecimentos! =)

Criado 23 de maio de 2012
Ultima resposta 25 de mai. de 2012
Respostas 9
Participantes 4