本文共 629 字,大约阅读时间需要 2 分钟。
前述对Entity对象的数据库数据的加载,都是通过Entity对象的标识符。实际上,对于能够唯一区分Entity对象的任何属性,都能够用作加载数据库数据的参数。
这种,能够唯一区分Entity对象的属性被称为“自然标识符”,即Entity对象天然拥有的唯一属性。与之相对,Entity对象的标识符未必是天然属性,而是人工或自动生成的属性。
与通过标识符加载Entity对象的数据类似,通过Entity对象的“自然标识符”加载数据,也存在延迟加载和即时加载的区别。加载数据的方法一样,只是方法的参数由标识符换为自然标识符。
1.延迟加载的示例如下:
1)Hibernate的Native API(区别于标识符)
session.bySimpleNaturalId( Book.class ).getReference( isbn );2) Hibernate的JPA API(相同于标识符)
entityManager.getReference( Book.class, isbn)
2.即时加载的示例如下:
1)Hibernate的Native API(区别于标识符)
session.byNaturalId( Book.class ).using( "isbn", isbn ).load( );
2)Hibernate的JPA API(相同于标识符)
Book book = entityManager.find( Book.class, isbn);
转载地址:http://bilai.baihongyu.com/