SóProvas


ID
157909
Banca
CESGRANRIO
Órgão
TJ-RO
Ano
2008
Provas
Disciplina
Programação
Assuntos

Sobre o framework de mapeamento objeto/relacional Hibernate, é correto afirmar que

Alternativas
Comentários
  • a) Falso. Um objeto vinculado a uma sessão (em estado persistent) é atualizado automaticamente. 

    b) Falso. Detached é o estado dos objetos após o fechamento da sessão (após a vinculação, não antes). O estado mencionado é transient.

    c) Falso. Se um objeto está vinculado a uma sessão, ele está no estado persistent.

    d) Falso. Este estado é detached.

    e) Verdadeiro.

     Hibernate defines three states for object instances: persistent, detached, and transient.

    Persistent objects are ones that are currently associated with a Hibernate session; as soon as the session is closed (or the object is evicted), the objects become detached. Hibernate ensures that Java objects in a persistent state for an active session match the corresponding record(s) in the database. Transient objects are ones that are not (and most likely, never were) associated with Hibernate session and also do not have an object identity.   Fonte: http://media.techtarget.com/tss/static/articles/content/AgileJavaDev/Hibernate.pdf   Transient classes are instances that have not been saved to the database. To make a transient instance persistent, simply save it using the Session class   Fonte: http://www.systemmobile.com/?p=11
  • Somente complementando o excelente comentário do colega acima. 

     • Transient  - um objeto é transiente se ele foi instanciando usando apenas o operador new  e não foi associado a uma Session  do Hibernate. Ele não possui uma representação persistente no banco de dados e não lhe foi atribuído nenhum identificador. Instâncias transientes serão destruídas pelo coletor de lixo se a aplicação não mantiver sua referência. Use uma Session  do Hibernate para tornar o objeto persistente (e deixe o Hibernate gerenciar as instruções SQL que serão necessárias para executar esta transição).

    • Persistent  - uma instância persistente possui uma representação no banco de dados e um

    identificador. Ela pode ter sido salva ou carregada, portanto ela se encontra no escopo de uma

    Session . O Hibernate irá detectar qualquer mudança feita a um objeto persistente e sincronizar

    o seu estado com o banco de dados quando completar a unidade de trabalho. Desenvolvedores

    não executam instruções manuais de UPDATE , ou instruções de DELETE  quando o objeto se

    tornar transiente.

    • Detached  – uma instância desanexada é um objeto que foi persistido, mas sua Session

     foi fechada. A referência ao objeto continua válida, é claro, e a instância desanexada pode

    ser acoplada a uma nova Session  no futuro, tornando-o novamente persistente (e todas as

    modificações sofridas). Essa característica habilita um modelo de programação para unidades

    de trabalho de longa execução, que requeira um tempo de espera do usuário. Podemos chamálas

    de transações da aplicação , ou seja, uma unidade de trabalho do ponto de vista do usuário.