/ / Como posso saber se uma entidade do Hibernate é somente leitura ou não - java, hibernate, persistence

Como posso saber se uma entidade do Hibernate é somente leitura ou não - java, hibernate, persistence

Eu fiz uma entidade somente leitura depois de recuperá-la usando:

Session session = (Session)entityManager.getDelegate();
session.setReadOnly( entity, makeReadOnly );

Eu gostaria de ser capaz de testar se este objeto e seus filhos carregados de preguiça são, na verdade, somente leitura programaticamente, mas eu não vejo nenhuma API para fazer isso. Existe tal API?

Atualização: Eu estou usando o Hibernate 3.3.1

Respostas:

2 para resposta № 1

Session.isReadOnly (objeto entityOrProxy) por isso.

editar: Hack feio para 3.3.1:

//usual imports
//....
import org.hibernate.impl.SessionImpl;
import org.hibernate.engine.EntityEntry;
import org.hibernate.engine.Status;
import org.hibernate.engine.StatefulPersistenceContext;


Session session = (Session)entityManager.getDelegate();

SessionImpl sessImpl = (SessionImpl) session;
if (((StatefulPersistenceContext) sessImpl.getPersistenceContext()).getEntry(entity).getStatus() == Status.READ_ONLY) {
dosomething
};