1. 程式人生 > >對於Hibernate和JPA的理解

對於Hibernate和JPA的理解

前言

在學習EJB的過程中,碰到了持久化這一概念,前面我一直沒弄清楚JPA和Hibernate的關係,隨著查閱的資料越多,我逐漸弄清了這三者的關係。

概念

持久化:將內容中的物件儲存到磁碟這類永久儲存器中,在需要的時候可以將其調回記憶體還原為物件。

ORM:是一種程式設計技術,全稱為Object/Relation Mapping(物件關係對映),是最早的持久化解決方案。

JPA:是POJO持久化標準規範,全稱為Java Persistence API,它包含了ORM對映元資料、API、查詢語言這三方面的技術。

Hibernate:是一個完全的ORM工具,用於物件的持久化。

聯絡

順序:持久化---->ORM--->JPA--->Hibernate。

區別

Hibernate與JPA:Hibernate實現了JPA但是不限於JPA,JPA只是Hibernate的一個子集。

在EJB程式設計中,資料的持久化使用了JPA規範,但是對於具體的Provider則是看具體使用,Hibernate是Provider中很強的一個。

相關推薦

對於HibernateJPA理解

前言 在學習EJB的過程中,碰到了持久化這一概念,前面我一直沒弄清楚JPA和Hibernate的關係,隨著查閱的資料越多,我逐漸弄清了這三者的關係。 概念 持久化:將內容中的物件儲存到磁碟這類永久儲存器中,在需要的時候可以將其調回記憶體還原為物件。 ORM:是一種程式

HibernateJPA

Mybatis(ibatis)半自動化orm框架,需要手寫sql語句 Hibernate  全自動化orm框架,不需要寫sql語句 Hibernate底層也是jdbc sun公司制定JPA規範(Java Persistence API)  java持久化規範   內部是介面和抽象類組成   Hibe

hibernatejpa註解關聯總結

用hibernate和jpa annotation 大概一年多了,今天閒來無事,對他們關聯關係元資料寫法做一個總結。   1.一對一主鍵關聯   這個在實際專案中用的比較少,大部分是通過用外來鍵做關聯的,這裡用使用者和手機號舉個例子,使用者和手機號是一對一的關係,

對於equals==的理解

很多時候equals和==大家都分不太清楚怎麼樣來使用,今天小編就來教大家怎麼使用 equals比較的是兩個變數的值是否相等 而==則比較的是這個變數的記憶體地址是否相同 打個比方來說 String a = new String("a"); String b = new String ("a");

使用註解風格學習HibernateJPA的主鍵生成策略

                      主鍵是關係資料庫中的一個基本概念,它用來保證記錄的唯一性。簡單來說,就是同一張資料庫表中,不允許存在多條相同主鍵的記錄。主鍵生成策略,就是當向資料庫表中插入記錄的時候,這個記錄的主鍵該如何生成。絕大部分情況下,主鍵都是沒有業務含義的,所以開發者不會、也不需要,顯示地

Hibernate JPA 註解方式自定義ID生成器

/** * Test.java * 實體類定義和配置 */ package com.saving.ecm.resource.entity; import javax.persistence.Column; import javax.persistence.Enti

網上整理的對於RestRestful api的理解

gpo 信息 常用 method 安全 什麽 獲取 正常 stat 一、什麽是Rest? REST不是"rest"這個單詞,而是幾個單詞縮寫 -- REpresentational State Transfer 直接翻譯:表現層狀態轉移,但這個翻譯正常人根本看不懂,找到的一

對於PrintStream PrintWriter的理解 以及各種編碼格式 以及編碼解碼的解釋

PrintStream: 是一個位元組列印流,System.out對應的型別就是PrintStream。 它的建構函式函式可以接收三種資料型別的值。 1,字串路徑。 2,File物件。 3,OutputStream。 PrintWriter: 是一

springboot jpahibernatemysql對應欄位如何處理

    背景:程式中的entity物件中欄位expression為json字串欄位,每次前端傳過來的json物件進行轉換會時出現錯誤,由於expression被轉換為了JsonObject型別導致。

對於浮動清除浮動的理解

我在他轉載的文章的基礎上自己做了總結和理解,雖然不知道原創是誰,但是灰常的感謝,幫助我們這些前端小白。 話不多說進入正題: 1.首先什麼是浮動:舉一個例子 <!DOCTYPE html> <html lang="en"> <head&g

JPA Hibernate 資料庫 的 鎖機制

本文總結Java中有關資料庫儲存持久資料的鎖機制,不只是純粹資料庫自身的鎖,本文主要就Java持久層三個技術資料庫、JPA和Hibernate的鎖應用進行了總結。   在併發理論中,鎖是用於保護可變的共享資料,以保證資料的完整性,大多數應用程式都是依賴於資料庫本身提供的

個人對於陣列緩衝區的理解

參考文章:http://blog.csdn.net/zhangyuan19880606/article/details/51162096       概念上,緩衝區是包在一個物件內的基本資料元素陣列。Buffer類相比一個簡單陣列的優點是它將關於資料的資料內容和

Hibernate SessionJpa EntityManager

本文主要比較一下二者操作實體類的方法的關係和區別。 本文適用 Hibernate:4.3.11.Final 和 spring-data-jpa:1.10.4.RELEASE 。 建立方式 Session: Configuration config

對於softmaxsigmoid的理解

在分類問題中,人們常常會用到sigmoid和softmax這兩個啟用函式。 sigmoid:A logistic function or logistic curve is a common “S” shape (sigmoid curve). 也就是說,s

JPAHibernateMybatis區別總結

一、應用場合: 傳統公司、部分個人開發者喜歡用jpa;而網際網路公司更青睞於mybatis 原因: 1、mybatis更加靈活,開發迭代模式決定了他是網際網路公司的首先;每一次的修改不會帶來效能上的下降。 2、傳統公司需求迭代速度慢、專案改動小,hibernate可以

對於equalhashcode的理解,何時需要重寫

重寫equal 的同時為什麼必須重寫hashcode? hashCode是編譯器為不同物件產生的不同整數,根據equal方法的定義:如果兩個物件是相等(equal)的,那麼兩個物件呼叫hashCode必須產生相同的整數結果,即:equal為true,hashCode必須

hibernate:真正理解二級快取查詢快取

public class Person { private Person parent; private Set<Person> children; public void setParent(Person p) { parent = p; } public void setChild

對於IntentIntentFilter的理解記錄

來自:http://blog.csdn.net/fhx123fhx123/article/details/7906113 來個通俗的比方: Intent比作一個人 IntentFilter比作一個飯店 1、如果一個人想吃東西(Intent的action),而酒店中

objc--對於RetainAssign屬性的理解

在寫程式時,對於要定義的變數進了習慣於加上retain屬性,但對其到底起到什麼作用卻一直不是很明白,今天做了一個demo,終於弄清了他們的意思。 比如我要定義一下字串var: NSString *var; 宣告Property時,@property(nonamtic,assign)NSString

對於Hibernate的openSession方法為什麼不是執行緒安全的原始碼理解

首先,先明確幾個概念。 1、區域性變數不會受多執行緒影響。 2、成員變數會受到多執行緒影響。 多個執行緒呼叫的同一個物件的同一個方法: 如果方法裡無成員變數,不受任何影響, 如果方法裡有成員變數,只有讀操作,不受影響,存在賦值操作,有影響。 第一點