純JPA 入門小案例(2)

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

JPA中的主鍵生成策略

通過annotation(注解)來映射hibernate實體的,基于annotation的hibernate主鍵標識為@Id, 其生成規則由@GeneratedValue設定的.這里的@id和@GeneratedValue都是JPA的標準用法。

JPA提供的四種標準用法為TABLE,SEQUENCE,IDENTITY,AUTO。

具體說明如下:

IDENTITY:主鍵由數據庫自動生成(主要是自動增長型)

用法:

[@Id](https://my.oschina.net/u/3451001)  
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private Long custId;

SEQUENCE:根據底層數據庫的序列來生成主鍵,條件是數據庫支持序列。

用法:

@Id  
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator="payablemoney_seq")  
@SequenceGenerator(name="payablemoney_seq", sequenceName="seq_payment")  

private Long custId;

//@SequenceGenerator源碼中的定義
@Target({TYPE, METHOD, FIELD})   
@Retention(RUNTIME)  
public @interface SequenceGenerator {  //表示該表主鍵生成策略的名稱,它被引用在@GeneratedValue中設置的“generator”值中String name();  //屬性表示生成策略用到的數據庫序列名稱。String sequenceName() default "";  //表示主鍵初識值,默認為0int initialValue() default 0;  //表示每次主鍵值增加的大小,例如設置1,則表示每次插入新記錄后自動加1,默認為50int allocationSize() default 50;  
}

AUTO:主鍵由程序控制

用法:

@Id  
@GeneratedValue(strategy = GenerationType.AUTO)  
private Long custId;

TABLE:使用一個特定的數據庫表格來保存主鍵

用法:@Id  @GeneratedValue(strategy = GenerationType.TABLE, generator="payablemoney_gen")  @TableGenerator(name = "pk_gen",  table="tb_generator",  pkColumnName="gen_name",  valueColumnName="gen_value",  pkColumnValue="PAYABLEMOENY_PK",  allocationSize=1  ) 
private Long custId;//@TableGenerator的定義:@Target({TYPE, METHOD, FIELD})   @Retention(RUNTIME)  public @interface TableGenerator {  //表示該表主鍵生成策略的名稱,它被引用在@GeneratedValue中設置的“generator”值中String name();  //表示表生成策略所持久化的表名,例如,這里表使用的是數據庫中的“tb_generator”。String table() default "";  //catalog和schema具體指定表所在的目錄名或是數據庫名String catalog() default "";  String schema() default "";  //屬性的值表示在持久化表中,該主鍵生成策略所對應鍵值的名稱。例如在“tb_generator”中將“gen_name”作為主鍵的鍵值String pkColumnName() default "";  //屬性的值表示在持久化表中,該主鍵當前所生成的值,它的值將會隨著每次創建累加。例如,在“tb_generator”中將“gen_value”作為主鍵的值 String valueColumnName() default "";  //屬性的值表示在持久化表中,該生成策略所對應的主鍵。例如在“tb_generator”表中,將“gen_name”的值為“CUSTOMER_PK”。 String pkColumnValue() default "";  //表示主鍵初識值,默認為0。 int initialValue() default 0;  //表示每次主鍵值增加的大小,例如設置成1,則表示每次創建新記錄后自動加1,默認為50。int allocationSize() default 50;  UniqueConstraint[] uniqueConstraints() default {};  } //這里應用表tb_generator,定義為 :CREATE TABLE  tb_generator (  id NUMBER NOT NULL,  gen_name VARCHAR2(255) NOT NULL,  gen_value NUMBER NOT NULL,  PRIMARY KEY(id)  )

轉載于:https://my.oschina.net/edisonOnCall/blog/3033284

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448997.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448997.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448997.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

spring IoC/DI

一、spring創建對象的三種方式&#xff1a;1、通過構造方法創建無參構造創建&#xff1a;默認情況有參構造創建&#xff1a;需要明確配置<constructor-arg>中配置index&#xff1a;參數索引name&#xff1a;參數名type&#xff1a;參數類型&#xff08;區分基本數據類型和…

并發不是并行,它更好!

原文鏈接&#xff0c;譯文鏈接&#xff0c;譯者&#xff1a;雷哥&#xff0c;饒命&#xff0c;校對&#xff1a;李任 現代社會是并行的&#xff1a;多核、網絡、云計算、用戶負載&#xff0c;并發技術對此有用。 Go語言支持并發&#xff0c;它提供了&#xff1a;并發執行&…

詳解設計模式在Spring中的應用

設計模式作為工作學習中的枕邊書&#xff0c;卻時常處于勤說不用的尷尬境地&#xff0c;也不是我們時常忘記&#xff0c;只是一直沒有記憶。 今天&#xff0c;在IT學習者網站就設計模式的內在價值做一番探討&#xff0c;并以spring為例進行講解&#xff0c;只有領略了其設計的思…

開大你的音響,感受HTML5 Audio API帶來的視聽盛宴

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 話說HTML5的炫酷真的是讓我愛不釋手&#xff0c;即使在這個提到IE就傷心不完的年代。但話又說回來&#xff0c;追求卓越Web創造更美世界…

Microsoft Visual Studio 2010(vs2010) 中文版安裝

Microsoft Visual Studio 2010(vs2010) 中文版安裝 日期&#xff1a;2019-05-12 時間&#xff1a;20:03:36 編輯&#xff1a;張國富 下載地址 基本簡介 Microsoft Visual Studio&#xff08;vs2010是簡稱&#xff09;是微軟公司推出的開發環境。visual studio 2010…

JVM的幾點性能優化

HotSpot&#xff0c;家喻戶曉的JVM&#xff0c;我們的Java和Scala程序就運行在它上面。年復一年&#xff0c;一次又一次的迭代&#xff0c;經過無數工程師的不斷優化&#xff0c;現在它的代碼執行的速度和效率已經逼近本地編譯的代碼了。 它的核心是一個JIT&#xff08;Just-I…

IDEA配置 及 快捷鍵

出處&#xff1a; https://www.cnblogs.com/hero123/p/10120552.html 快捷鍵&#xff1a; 格式化代碼 CtrlaltL 后退Ctrlalt <- 格式化代碼快捷鍵&#xff1a;Ctrl Alt L 刪除整行&#xff1a;CtrlX 實現類 ctrl alt CtrlN 查找類 CtrlShiftN 查找文件 CTRLSHIFTALTN 查找…

LeetCode Decode Ways

123123轉載于:https://www.cnblogs.com/ZHONGZHENHUA/p/10854545.html

SpringBoot 之集成 Spring AOP

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 在開始之前&#xff0c;我們先把需要的jar包添加到工程里。新增Maven依賴如下&#xff1a; <dependency><groupId>org.spri…

9件事把你從消極情緒中解救出來

也許你很難相信&#xff0c;但是情緒可以通過重復形成習慣。消極情緒甚至可以變成某種嵌入你每日生活的東西。 如何將它們趕跑? 你發現你不斷地埋怨世界和自己?你可以輕易地生氣并且對人變得刻薄?那憤怒又是否成為你對事情本能的回應了?如果你對所述問題中的一個回答了“是…

數據庫主鍵自增插入顯示值

版權聲明&#xff1a;本文為博主原創文章&#xff0c;未經博主同意不得轉載。 https://blog.csdn.net/nwsuaf2009012882/article/details/32703597 SQL Server 2008 數據庫主鍵自增插入顯示值 前幾天在工作的時候遇到在刪除數據庫中表的數據的時候。刪除之后&#xff0c;又一次…

解決: This application has no explicit mapping for /error, so you are seeing this as a fallback.

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 報錯如題&#xff0c;出現這個異常說明了跳轉頁面的url無對應的值. 原因1: Application啟動類的位置不對.要將Application類放在最外側…

Selenium自動化獲取WebSocket信息

性能日志 ChromeDriver支持性能日志記錄&#xff0c;您可以從中獲取域“時間軸”&#xff0c;“網絡”和“頁面”的事件&#xff0c;以及指定跟蹤類別的跟蹤數據。啟用性能日志 默認情況下不啟用性能日志記錄。因此&#xff0c;在創建新會話時&#xff0c;您必須啟用它。 Desir…

零負債之人的10個習慣

無論你是已下定決心要于今年實現零負債&#xff0c;還是距離這個目標的實現有很長的路要走&#xff0c;能受到啟發總是好事。 看看你認識的已經過上“無債一身輕”生活的人──朋友、家人、同事或是你認為可能與其他無負債之人具有類似品質的人。 下文為無負債之人的10個共同…

《App后臺開發運維與架構實踐》第3章 App后臺核心技術

2019獨角獸企業重金招聘Python工程師標準>>> 3.1 用戶驗證方案 3.1.1 使用HTTPS協議 HTTPS協議是“HTTP協議”和“SSL/TLS”的組合。SSL&#xff08;Secure Sockets Layer&#xff09;&#xff0c;即安全套接層&#xff0c;是為了解決因HTTP協議是明文而導致傳輸內容…

IntelliJ IDEA 配置 JDK

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 提前安裝jdk&#xff0c;配置環境變量 一、配置jdk 1、依次點開File -->Project Structure&#xff0c;點擊左側標簽頁&#xff0c…

xml編輯無提示?這么破!

在學習testng這個單元測試框架時&#xff0c;如果咱們碰到了編輯測試套件xml&#xff0c;不提示的情況&#xff08;有提示方便咱們學習&#xff0c;并且testng的測試套件定義必須按照他的dtd文件約束來&#xff09;&#xff0c;咱們可以按照下面的步驟去解決這個問題。 1.檢查t…

“云棲直播”升級為“公開課”

直播平臺是面向廣大開發者的視頻學習平臺&#xff0c;幫助廣大開發者學習最新技術&#xff0c;了解最新阿里云產品以及最新技術發展趨勢&#xff0c;幫助開發者們不斷學習與成長。截止到2019年3月&#xff0c;直播共進行800余場&#xff0c;觀看人次100萬。  社區將對“云棲直…

遭銀行賬號詐騙最快最有效自救法

銀行卡或賬戶詐騙案件層出不窮&#xff0c;當匯錯款時該怎么做&#xff0c;切記以下方法&#xff1a; 一、當匯錯款或被騙匯款后&#xff0c;最快最有效的緊急自救法&#xff1a;當你把自己的錢不小心匯到了不該匯的人卡上&#xff0c;或者被騙子忽悠而把錢匯給了騙子&#xf…

SQL 判斷非空 NULL :IFNUL( ) 、COALESCE( ) 、ISNULL( ) 、NVL( )

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1. mysql 支持&#xff1a; IFNULL&#xff08;&#xff09;、COALESCE&#xff08;&#xff09; 如 IFNULL(UnitsOnOrder, 0) 或者 CO…