Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Criando uma consulta UPDATE RETURNING no Hibernate


Além dos valores gerados pelo banco de dados, obviamente não há necessidade do Hibernate retornar a instância atualizada porque o objeto foi passado para Session.saveOrUpdate() é a instância atualizada. Os valores gerados pelo banco de dados (sequência, gatilho, padrões, etc.) serão definidos depois Session.saveOrUpdate se forem anotados de acordo (ou definidos em um arquivo de mapeamento XML).

Para valores de identificador use o JPA @javax.persistence.GeneratedValue anotação em conjunto com o JPA @javax.persistence.Id anotação. Para propriedades simples use o @org.hibernate.annotations.Generated nativo do Hibernate anotação (afaik não há anotação JPA de acordo).

Como os valores dos identificadores gerados são recuperados pelo Hibernate depende da estratégia de geração e/ou do dialeto do banco de dados. Para propriedades simples, o Hibernate executa um SELECT adicional pela instrução id após o INSERT ou UPDATE .