博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate中通过自然标识符(natural-id)对Entity对象的加载
阅读量:4178 次
发布时间:2019-05-26

本文共 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/

你可能感兴趣的文章
485. Max Consecutive Ones(数组)
查看>>
287. Find the Duplicate Number(数组)
查看>>
Linux内核-------同步机制(二)
查看>>
面试题31-------连续子数组的最大和(数组)
查看>>
epoll 实现Chat
查看>>
21. Merge Two Sorted Lists(链表)
查看>>
2. Add Two Numbers(链表)
查看>>
637. Average of Levels in Binary Tree(Tree)
查看>>
226. Invert Binary Tree(Tree)
查看>>
328. Odd Even Linked List(链表)
查看>>
617. Merge Two Binary Trees(Tree)
查看>>
700. Search in a Binary Search Tree(Tree)
查看>>
515. Find Largest Value in Each Tree Row(Tree)
查看>>
897. Increasing Order Search Tree(Tree)
查看>>
199. Binary Tree Right Side View(Tree)
查看>>
230. Kth Smallest Element in a BST(Tree)
查看>>
求字符串的最长回文串-----Manacher's Algorithm 马拉车算法
查看>>
回溯法常用的解题模板和常见题型
查看>>
深入分析Java I/O 的工作机制
查看>>
动态规划的套路----左神
查看>>