Recuperar ID recem cadastrado

Tenho uma tabela dentro de um banco X que faço cadastros. Uma outra tabela depende do item cadastrado na primeira tabela para realizar seu cadastro também.

Até então eu fazia assim:

Chamava o método que cadastrava // esse método tem o cadastro das duas tabelas dentro dele. Primeiro ele cadastra na primeira tabela e chama o outro método que faz um select.

Entra no outro. // Esse método faz um select no banco baseado em alguma informação do item que acabou de ser cadastrado e retorna o um id(int).

Volta pro primeiro método. // recebo o id do item que foi cadastrado na primeira tabela e prossigo para cadastrar o item da segunda tabela…

Dúvida: Tem como pular esse select? Uma query que me retorne o valor do ID que foi cadastrado? Algo nesse caminho…

Vlws!

ola,

quando trabalhava com o sql “na mao” eu sempre precisei de um select. Se o id ta tabela for auto incremento voce precisar usar um SELECT MAX(tabelaID) from tabela.

Se voce resolver trabalhar com jpa voce cria os objetos e depois precisa apenas relaciona-los.
Por exemplo, eu gosto desse exemplo pq eh facil de explicar, voce tem um pedido e ele tem varios itens, o id do pedido precisa estar na tabela item. entao:

Pedido p = new Pedido();
Item i = new Item();
i.setPedido(p);
p.addItens(p);
...
EntityManagerFactory emf = Persistence.createEntityManagerFactory("programaPU");
EntityManager em = emf.createEntityManager();
//Voce pode fazer de duas formas
p = em.persist(p); //dessa forma vc ja recupera o id do pedido caso voce precise para alguma coisa
System.out.println(p.getPedidoID();
//Ou simplesmente assim
em.persist(p);
/*O importante é que em ambos os casos funciona.
 * suprimi a abertura de transação e o try/catch
*/

pronto voce pode fazer das duas formas. Nao é dificil trabalhar com JPA se voce for assinante da java magazine tem uma edicao que explica de forma bem basica para quem nao trabalhou com ela ainda. nao me recordo bem da edicao mas é entre a 38 e a 45. hehehe!

[]'s