Pessoal, to com uma duvida cruel aqui. Quando persisto uma entidade no hibernate usando merge e depois dou outro merge na mesma entidade, porem uma instancia diferente, me parece que o hibernate tem a inteligencia de saber que aquela entidade já está no banco e não precisa ser persistida… é isso mesmo? Ou estou falando besteira?
Se ele tem realmente essa capacidade, é possivel usa-la? Se eu por exemplo, instancio uma entidade na mão mesmo, populo os dados, é possivel saber se essa entidade está persistida?
Não … vc pode carregar uma entidade através do ID, ou através de Criteria ou HQL … mas popular na mão, vc não tera como saber c é persistida, ate pq a resposta é sempre que não esta persistida…
O hibernate mantem proxys e interceptors, que de acordo com a sessão ele sabe o estado da entidade…
portantoq quando vc puxa a entidade do banco de dados, por 1 session, e a altera, ele sabe isso pq ele monitora a entidade,
por isso c vc tentar dar varios marges na mesma entidade, ele sabe c houve ou não alteração e se precisa salvar…
mas popular na mão, para o hibernate a entidade será datached