本文共 613 字,大约阅读时间需要 2 分钟。
Hibernate中,对于已经持久化了的Entity对象,其数据存储在数据库中。
在Hibernate应用中创建一个新对象时,如果该对象引用了另一个Entity对象,那么可以仅仅创建被引用Entity对象的引用,而不实际加载被引用的Entity对象的数据。这也就是Hibernate的延迟加载。
对于Hibernate的Native API,示例如下:
Book book = new Book();book.setId( 1L );book.setIsbn( "123-456-7890" );session.persist( book );book.setAuthor( session.load( Person.class, personId ) );
对于Hibernate的JPA API,示例如下:
Book book = new Book();book.setId( 1L );book.setIsbn( "123-456-7890" );entityManager.persist( book );book.setAuthor( entityManager.getReference( Person.class, personId ) );虽然创建引用时不必实际加载Entity对象的数据,但是在后续需要访问具体数据时,如果标识符为persionId的Person对象在数据库中不存在,那么将抛出运行时异常。
转载地址:http://yilai.baihongyu.com/