Recuperar ID

Olá,

Tenho um método chamado empresaManager.save
Eu gostaria que logo que eu desse o save eu recuperaro ID.
Tem algum DAO que faz isso?
Muito Obrigado

Voce usa Hibernate ou JPA?

Depois que voce salva o objeto o Hibernate já seta o atributo id do objeto com o ID adequado, acredito que o JPA também.

Estou usando Hibernate .
Sim… ele seta…
Mas o seguinte…
Dentro da servlet, eu estou usando o seguinte comando.
EmpresaManager.save
E quando eu salvo ele automaticamente gera um ID.
Eu quero recupera-lo.
na msm servlet… como eu faço ?

Objeto x = new Objeto();
long id = x.getId();//Supondo que seu atributo id seja um long aqui deve imprimir 0
EntityManager.save(x);//antes abra a Transaction e depois envie
id = x.getId();//Aqui o long id deve ter o id atual do objeto

Ficaria assim entao o meu codigo?

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		
		// Recupera o contexto da aplicação spring.
		WebApplicationContext context = WebApplicationContextUtils
				.getWebApplicationContext(getServletContext());
				

		// Objeto Cidade
		GenericManager<Cidade, Long> cidadeManager = (GenericManager<Cidade, Long>) context
				.getBean("cidadeManager");

		// Recupero o ID do checkbox para fazer a busca no banco de dados
		Long cidadeId = Long.parseLong(request.getParameter("citySelect"));
		Cidade cidade = cidadeManager.get(cidadeId);

		// Objeto Endereco
		Endereco endereco = new Endereco();
		endereco.setLogradouro(request.getParameter("logradouro"));
		endereco.setBairro(request.getParameter("bairro"));
		endereco.setCep(request.getParameter("cep"));
		endereco.setCidade(cidade);

		// Objeto Telefone
		Telefone telefone = new Telefone();
		telefone.setTel(request.getParameter("tel").toString());

		// Recupera o manager de empresa para inclusão ou atualização.
		GenericManager<Empresa, Long> empresaManager = (GenericManager<Empresa, Long>) context
				.getBean("empresaManager");
		
		Empresa empresa = new Empresa();	
		empresa.setRazaoSocial(request.getParameter("razaoSocial"));
		String fotmatedValue = (request.getParameter("cnpj"));
		empresa.setCnpj(fotmatedValue);
		empresa.setInscricaoEstadual(request.getParameter("inscricaoEstadual"));
		if (empresa.getInscricaoEstadual() == null) {
			empresa.setInscricaoEstadual("ISENTO");
		}
		empresa.setIsento(Boolean.parseBoolean(request.getParameter("isento")));
		empresa.setEndereco(endereco);
		empresa.setTelefone(telefone);
		

		// ... Preenche e valida...
		ClassValidator empresaValidator = new ClassValidator(Empresa.class,
				ResourceBundle.getBundle("psiconlineMessages", Locale.ENGLISH));
		InvalidValue[] invalidValues = empresaValidator
				.getInvalidValues(empresa);

		if (invalidValues.length == 0) {
			// Se tiver ok, salva.
			try {
				Long idTeste = empresa.getId();
				empresaManager.save(empresa);
				idTeste = empresa.getId();
			

			} catch (Exception e) {
				request.setAttribute("erros", Collections
						.singletonList("Sistema indisponível"));
				e.printStackTrace();
			}


	//continuacao