2009-05-14 13 views

Respuesta

3

ver Javadoc Hibernate Session y comprobar los métodos

  • Contiene - Compruebe si esta instancia está asociada con esta sesión.
  • getIdentifier - Devuelve el valor del identificador de la entidad dada como asociado a esta sesión. Tenga cuidado con la excepción que se lanza si la entidad no está asociada, cada excepción debe considerarse fatal y la sesión no se debe usar después
  • get - Devuelve la instancia persistente de la clase de entidad dada con el identificador dado o nulo si no hay tal instancia persistente.

, lo usaría 'conseguir' y, además, comprobar si hay valores cambiados, después de que su sólo una "saveOrUpdate" de persistir o actualización (y volver a montar) el objeto real

3

Session.contains te dice si un objeto está asociado con la sesión. Si no tiene identificador, es transitorio, si tiene un identificador y está asociado con la sesión, persistente. Identificador pero no asociado a una sesión, separado.

Si eso no ayuda, considere reformular su pregunta con más contexto, es decir, ¿por qué necesita saber el estado de un objeto en primer lugar?

0

No estoy de acuerdo con el uso de session.contains(obj) para revelar el estado de objeto de hibernación. Un objeto anteriormente persistido/cargado se asumirá como TRANSITORIO después de una simple llamada de session.clear() - si no obtuvo una clave principal sino una compuesta, no tiene idea en qué estado se encuentra ...

Se puede encontrar un enfoque correcto dentro de Hibernate 3: org.hibernate.engine.ForeignKeys.isTransient(...)

Cuestiones relacionadas