Laço de repetição

Olá galera, tudo certo?
Bom, estou com dúvidas sobre como fazer um negócio no meu projeto. No que consiste o projeto: tenho uma “biblioteca” com acervo, exemplares, autores, idiomas, assuntos, entre outros cadastros.
No meu cadastro de exemplares, tenho os seguintes campos: o acervo no qual está localizado esse exemplar, volume, data do cadastro, e biblioteca. Sendo que possuo Fks para obter os valores desses campos.
O que gostaria de fazer: pretendo ter um botão nesse cadastro em que o usuário informe quantos exemplares pretende cadastrar, por exemplo, o usuário informa que pretende cadastrar 5 exemplares de um mesmo livro. Daí esse exemplar seria cadastrado AUTOMATICAMENTE 5 vezes no meu banco de dados.
Para isso, acredito que devo fazer no meu Bean um laço de repetição, mas não tenho noção de como começá -lo. Gostaria da ajuda de vocês.
Obrigado

Você vai cadastrar cinco exemplares idênticos de um livro, mas eles provavelmente têm números de registro ou tombo diferentes.
Não se esqueça disso :slight_smile:
O número de registro é gerado pelo seu sistema ou deve ser entrado (por exemplo, você tem uma biblioteca que já existe faz muito tempo e você tem de conservar os números já existentes?

Tem que ser cinco exemplares idênticos ao livro, mas com o Código do exemplar diferente, gerado pelo sistema com um generator.

[quote=entanglement]Você vai cadastrar cinco exemplares idênticos de um livro, mas eles provavelmente têm números de registro ou tombo diferentes.
Não se esqueça disso :slight_smile:
O número de registro é gerado pelo seu sistema ou deve ser entrado (por exemplo, você tem uma biblioteca que já existe faz muito tempo e você tem de conservar os números já existentes?[/quote]

Pode me ajudar com o laço de repetição??? Obrigadoo

Espera um pouco. Você está com dificuldade em um for? Está de brincadeira com a gente?

De qualquer maneira, o for se escreve assim:

for (int i = 1; i <= 5; ++i) {
    // as coisas que você quer repetir 5 vezes
}

[quote=Ricardo Fávero Júnior]Olá galera, tudo certo?
Bom, estou com dúvidas sobre como fazer um negócio no meu projeto. No que consiste o projeto: tenho uma “biblioteca” com acervo, exemplares, autores, idiomas, assuntos, entre outros cadastros.
No meu cadastro de exemplares, tenho os seguintes campos: o acervo no qual está localizado esse exemplar, volume, data do cadastro, e biblioteca. Sendo que possuo Fks para obter os valores desses campos.
O que gostaria de fazer: pretendo ter um botão nesse cadastro em que o usuário informe quantos exemplares pretende cadastrar, por exemplo, o usuário informa que pretende cadastrar 5 exemplares de um mesmo livro. Daí esse exemplar seria cadastrado AUTOMATICAMENTE 5 vezes no meu banco de dados.
Para isso, acredito que devo fazer no meu Bean um laço de repetição, mas não tenho noção de como começá -lo. Gostaria da ajuda de vocês.
Obrigado[/quote]

Vc não faz um laço durante a persistencia. Vc faz um laço de 5 livros no chamador da persistencia e manda gravar cada um por si.
Este é mais fácil, basta dar new do bean de livro denro do laço e a cada passo mandar salvar cada um.

[quote=entanglement]Espera um pouco. Você está com dificuldade em um for? Está de brincadeira com a gente?

De qualquer maneira, o for se escreve assim:

for (int i = 1; i <= 5; ++i) { // as coisas que você quer repetir 5 vezes } [/quote]
Eu sei fazer um for. Mas a questão não é essa e sim se o usuário quiser gravar 100 exemplares iguais do mesmo livro.
EU nao vou poder colocar

for(int i =1; i<=100; i++) {
}

E daí vem outro e quer gravar 20, daí eu vou lá e altero o código. Mas, do mesmo jeito, muito obrigado.

[quote=sergiotaborda][quote=Ricardo Fávero Júnior]Olá galera, tudo certo?
Bom, estou com dúvidas sobre como fazer um negócio no meu projeto. No que consiste o projeto: tenho uma “biblioteca” com acervo, exemplares, autores, idiomas, assuntos, entre outros cadastros.
No meu cadastro de exemplares, tenho os seguintes campos: o acervo no qual está localizado esse exemplar, volume, data do cadastro, e biblioteca. Sendo que possuo Fks para obter os valores desses campos.
O que gostaria de fazer: pretendo ter um botão nesse cadastro em que o usuário informe quantos exemplares pretende cadastrar, por exemplo, o usuário informa que pretende cadastrar 5 exemplares de um mesmo livro. Daí esse exemplar seria cadastrado AUTOMATICAMENTE 5 vezes no meu banco de dados.
Para isso, acredito que devo fazer no meu Bean um laço de repetição, mas não tenho noção de como começá -lo. Gostaria da ajuda de vocês.
Obrigado[/quote]

Vc não faz um laço durante a persistencia. Vc faz um laço de 5 livros no chamador da persistencia e manda gravar cada um por si.
Este é mais fácil, basta dar new do bean de livro denro do laço e a cada passo mandar salvar cada um.[/quote]

Ok. Vou tentar fazer e após respondo se consegui. Obrigado ae cara :slight_smile:

[quote=Ricardo Fávero Júnior]Mas a questão não é essa e sim se o usuário quiser gravar 100 exemplares iguais do mesmo livro.
EU nao vou poder colocar

for(int i =1; i<=100; i++) {
}

E daí vem outro e quer gravar 20, daí eu vou lá e altero o código.[/quote]

Você sabe para que servem parâmetros em métodos?
É claro que eu pus um valor “5” no exemplo que eu dei, mas achei que você fosse trocar “5” por um parâmetro, ou variável de instância ou coisa parecida.
Sempre imagino que é melhor dar exemplos concretos e esperar que a pessoa consiga fazer a abstração sozinha :slight_smile:
Não imaginei que você fosse pensar em escrever “5” no seu código :slight_smile:

[quote=Ricardo Fávero Júnior][quote=entanglement]Espera um pouco. Você está com dificuldade em um for? Está de brincadeira com a gente?

De qualquer maneira, o for se escreve assim:

for (int i = 1; i <= 5; ++i) { // as coisas que você quer repetir 5 vezes } [/quote]
Eu sei fazer um for. Mas a questão não é essa e sim se o usuário quiser gravar 100 exemplares iguais do mesmo livro.
EU nao vou poder colocar

for(int i =1; i<=100; i++) {
}

E daí vem outro e quer gravar 20, daí eu vou lá e altero o código. Mas, do mesmo jeito, muito obrigado.[/quote]

Obviamente vc tem que ter uma variável no seu sistema que contém o numero de repetições necessárias De posse dessa variável vc executa o for com ela

int numeroDeRepeticoes = 10;

for(int i =0 ; i < numeroDeRepeticoes ; i++) {
}

(Por padrão o i começa em zero e o operador é o de menor. Isto é um idioma padrão para iteração indexada porque os indices em java começam em zero. E deverá ser usado mesmo quando a iteração não é indexada, como aqui )