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
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