Persistir objeto incompleto Hibernate

Pessoal estou com o seguinte problema:

Quero persistir um objeto da seguinte maneira, tenha uma pessoa que tem uma cidade que tb é um objeto, dessa forma para persistir pessoa tenho que fazer…


Cidade cid = new Cidade();

cid.setId(1L);
cid.setNome("Nome Cidade");
//... para todas as propriedades da cidade

pessoa.setCidade(cid);

Service().save(pessoa);

como não tenho minha cidade e como ela já está na base para não ter que consulta-la e depois seta-la na pessoa, teria com eu somente passar o ID para o objeto cid e inseri-lo em pessoa para depois persistir e com isso ganhar performance???

é Hibernate?

Caso for: me corrijam se eu estiver errado, mas acredito que só com

pessoa.getCidade().setId(1L);

acho que deve funcionar…

Funciona mas verifique se no mapeamento do relacionamento entre Pessoa e Cidade, você colocou update=“false” pois se foi colocado o contrário você atualizará a cidade deixando os outros campos desta nulos.

Assim, estou usando Hibernate com Anotations e a forma como está mapeado está para não replicar um seve ou update para todos. Estou omitindo o cascadeType.ALL…

[quote=dooda]é Hibernate?

Caso for: me corrijam se eu estiver errado, mas acredito que só com

pessoa.getCidade().setId(1L);

acho que deve funcionar…
[/quote]

Vou fazer o teste e ver no que da… se funcionar isso vai dar um grande salto no desempenho do sistema que estou trabalhando… :smiley:

Como vc esta não habilitou o Cascade.ALL. Se o objeto cidade ja existir, vc so precisa setar o objeto cidade com o id preenchido no objeto pessoa.

Esse objeto não existe, ele deve ser buscado bando para compor o objeto pessoa e para não ter que realizar esta consulta queria somente passar o id no objeto e depois persistir… ganhando performance :smiley:

Esse objeto não existe, ele deve ser buscado bando para compor o objeto pessoa e para não ter que realizar esta consulta queria somente passar o id no objeto e depois persistir… ganhando performance :smiley: [/quote]

Buscar? então vc já tem uma lista de cidades persistida certo?

Se vc tem uma lista de cidades vc tem os id, se vc souber o id da cidade pode fazer como eu falei.

Se vc tem somente o id, pode fazer que da certo, não é preciso ter o objeto todo não, mas ai cuidado com os Cascades…

Esse objeto não existe, ele deve ser buscado bando para compor o objeto pessoa e para não ter que realizar esta consulta queria somente passar o id no objeto e depois persistir… ganhando performance :smiley: [/quote]

Buscar? então vc já tem uma lista de cidades persistida certo?

Se vc tem uma lista de cidades vc tem os id, se vc souber o id da cidade pode fazer como eu falei.

Se vc tem somente o id, pode fazer que da certo, não é preciso ter o objeto todo não, mas ai cuidado com os Cascades…[/quote]

Isso ai, eu já tenho o id da cidade que quero. Tentei aqui mas não deu certo creio que seja por ter algum objeto cascade. Vou fazer uma busca e mudar o que achar… e posto ai! :smiley:

Esse objeto não existe, ele deve ser buscado bando para compor o objeto pessoa e para não ter que realizar esta consulta queria somente passar o id no objeto e depois persistir… ganhando performance :smiley: [/quote]

Buscar? então vc já tem uma lista de cidades persistida certo?

Se vc tem uma lista de cidades vc tem os id, se vc souber o id da cidade pode fazer como eu falei.

Se vc tem somente o id, pode fazer que da certo, não é preciso ter o objeto todo não, mas ai cuidado com os Cascades…[/quote]

Isso ai, eu já tenho o id da cidade que quero. Tentei aqui mas não deu certo creio que seja por ter algum objeto cascade. Vou fazer uma busca e mudar o que achar… e posto ai! :smiley: [/quote]

A relação pessoa cidade dentro da classe pessoa não pode ter cascateamento.
Aqui eu uso JPA com Hibernate e sempre faço isso, e da certo.

Tentei aqui mas não deu certo, retirei o cascade e mesmo assim não funciona…