本文共 1039 字,大约阅读时间需要 3 分钟。
根据与持久化上下文的联系不同,Hibernate应用中的Entity对象可能处于不同的状态,那么持久化上下文如何检测Entity对象的状态呢?持久化上下文提供了专门的方法检测给定的Entity对象的状态。
1. 检测Entity对象是否处于managed/persistent状态
对于Hibernate的Native API,示例如下:
boolean contained = session.contains( person );对于Hibernate的JPA API,示例如下:
boolean contained = entityManager.contains( person );
2. 检测延迟加载的Entity对象是否被加载
对于Hibernate的Native API,示例如下:
boolean personInitialized = Hibernate.isInitialized( person );boolean personBooksInitialized = Hibernate.isInitialized( person.getBooks() );boolean personNameInitialized = Hibernate.isPropertyInitialized( person, "name" );
对于Hibernate的JPA API,示例如下:
PersistenceUtil persistenceUnitUtil = Persistence.getPersistenceUtil();//recommended//PersistenceUnitUtil persistenceUnitUtil = entityManager.getEntityManagerFactory().getPersistenceUnitUtil();//not recommendedboolean personInitialized = persistenceUnitUtil.isLoaded( person );boolean personBooksInitialized = persistenceUnitUtil.isLoaded( person.getBooks() );boolean personNameInitialized = persistenceUnitUtil.isLoaded( person, "name" );
转载地址:http://silai.baihongyu.com/