1. 程式人生 > >JPA 菜鳥教程 19 jpa uuid主鍵生成策略

JPA 菜鳥教程 19 jpa uuid主鍵生成策略

GitHub

ddl語句

CREATE TABLE `t_user` (
  `id` varchar(32) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

User

package com.jege.jpa.primary;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import
javax.persistence.Id; import javax.persistence.Table; import org.hibernate.annotations.GenericGenerator; /** * @author JE哥 * @email [email protected] * @description:jpa-uuid主鍵生成策略 */ @Entity @Table(name = "t_user") @GenericGenerator(name = "jpa-uuid", strategy = "uuid") public class User { @Id
@GeneratedValue(generator = "jpa-uuid") @Column(length = 32) private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this
.name = name; } @Override public String toString() { return "User [id=" + id + ", name=" + name + "]"; } }

MainTest

package com.jege.jpa.primary;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

/**
 * @author JE哥
 * @entityManagerail [email protected]
 * @description:jpa-uuid主鍵生成測試
 */
public class MainTest {
  private static EntityManagerFactory entityManagerFactory = null;
  private EntityManager entityManager = null;

  @BeforeClass
  public static void setUpBeforeClass() throws Exception {
    entityManagerFactory = Persistence.createEntityManagerFactory("com.jege.jpa");
  }

  @Before
  public void setUp() throws Exception {
    entityManager = entityManagerFactory.createEntityManager();
  }

  @Test
  public void persist() throws Exception {
    User user = new User();
    user.setName("jege");

    entityManager.getTransaction().begin();
    entityManager.persist(user);
    entityManager.getTransaction().commit();
  }

  @After
  public void tearDown() throws Exception {
    if (entityManager != null && entityManager.isOpen()) {
      entityManager.close();
    }
  }

  @AfterClass
  public static void tearDownAfterClass() throws Exception {
    if (entityManagerFactory != null && entityManagerFactory.isOpen()) {
      entityManagerFactory.close();
    }
  }
}

原始碼地址

如果覺得我的文章或者程式碼對您有幫助,可以請我喝杯咖啡。
您的支援將鼓勵我繼續創作!謝謝!
微信打賞
支付寶打賞

相關推薦

JPA 教程 19 jpa uuid生成策略

GitHub ddl語句 CREATE TABLE `t_user` ( `id` varchar(32) NOT NULL, `name` varchar(255) DEFAU

mybatis+MySQL UUID生成策略

mybatis mysql uuid主鍵生成<insert id="insert" parameterType="com.gzwb.wbspm.model.SpmInvoice" > <selectKey keyProperty="invoiceId" //主鍵列名 resultType

JPA 教程 15 繼承-一個表-SINGLE_TABLE

column turn rate pre school fill 技術 一個表 tor 原地址:http://blog.csdn.net/JE_GE/article/details/53678422 繼承映射策略 一個類繼承結構一個表的策略,最終只生成一個表,這是繼承映射的

JPA 教程 3 單向多對一

GitHub JPA中的@ManyToOne 主要屬性 - name(必需): 設定“many”方所包含的“one”方所對應的持久化類的屬性名 - column(可選): 設定one方的主鍵,即持久化類的屬性對應的表的外來鍵 - class

JPA 教程 6 單向多對多

GitHub JPA中的@ManyToMany @ManyToMany註釋表示模型類是多對多關係的一端。 @JoinTable 描述了多對多關係的資料表關係。 name 屬性指定中間表名稱 joinColumns 定義中間表與Teach

JPA 教程 2 單表操作

GitHub JPA Sun官方提出的Java持久化規範。它為Java開發人員提供了一種物件/關係對映工具來管理Java應用中的關係資料。他的出現主要是為了簡化現有的持久化開發工作和整合ORM技術,結束現在Hibernate、TopLink等OR

JPA註解生成策略-UUID

ces sys 策略 選擇 system 實現 table ont ora @GeneratedValue:主鍵的產生策略,通過strategy屬性指定。   主鍵產生策略通過GenerationType來指定。GenerationType是一個枚舉,它定義了主鍵產生策略的

使用註解風格學習Hibernate和JPA生成策略

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

jpa table生成策略

用 table 來生成主鍵詳解 它是在不影響效能情況下,通用性最強的 JPA 主鍵生成器。這種方法生成主鍵的策略可以適用於任何資料庫,不必擔心不同資料庫不相容造成的問題。 initialValue不起作用? Hibernate 從 3.2.3 之後引入了兩個新的主鍵生成器 TableGenerator

hibernate JPA註解生成策略

Id生成策略: @GeneratedValue,JPA通用策略生成器 。         JPA提供的四種標準用法為TABLE,SEQUENCE,IDENTITY,AUTO.           TABLE:使用一個特定的資料庫表格來儲存主鍵。           S

JPA生成策略

一、JPA通用策略生成器  通過annotation來對映hibernate實體的,基於annotation的hibernate主鍵標識為@Id,  其生成規則由@GeneratedValue設定的.這裡的@id和@GeneratedValue都是JPA的標準用法,  JPA提供四種標準用法,由@Gene

spring boot 2.0 JPA生成策略不按單表遞增解決辦法

spring BOOT 更新至2.0後,上到雲端測試後,發現自動生成的主鍵有問題,如下:主鍵沒有按照表中的順序遞增,而是看似無規則的遞增中。參考了一下其他表也是這種狀態,於是把問題定位在了 spring data jpa 生成主鍵的策略上:之前都是AUTO讓jpa自動的選擇生

Java 持久化技術規範(JPA )中的生成策略

簡介: Java Persistence API(JPA)中要求每個實體(Entity)類必須有一個主鍵,並且提供了 Table,Sequence,Identity,Auto 四種主鍵生成策略。其中 Identity 為表自動增長欄位;Sequence 通過序列產生主鍵;這兩

Hibernate的uuid生成方式

從hibernate3.0開始已經不再支援uuid.string,檢視changelog可以發現: Changes in version 3.0 beta 1 (21.12.2004) * removed uuid.string and renamed uuid.hex to plain uuid,hiber

Hibernate 生成策略

關閉 min conn mine 數據 xml文件 ive orm 刪除 第一步:引入jar包 省略 第二部:創建實體類 package cn.hibernate.bean; public class Student { private Integer sId;

(轉) Hibernate持久化類與生成策略

bject 規則 修飾符 cti arc arch 斷點 可能 策略 http://blog.csdn.net/yerenyuan_pku/article/details/65462930 Hibernate持久化類 什麽是持久化類呢?在Hibernate中持久化類的英

Hibernate 之生成策略小總結

rem 時間值 多線程 class 判斷 acl 選擇 hiberna bsp 主鍵生成策略大致分兩種: 手工控制策略 自動生成策略【框架自動生成和數據庫自動生成】 手工控制策略: assigned:類型是任意的,需要在 save() 到數據庫前,編碼人員手工設置主鍵

Hibernate生成策略

要求 mage src ble 配置 生成策略 padding pac 之前 Hibernate主鍵生成策略 1 hibernate要求實體類裏面有一個屬性作為唯一值,對應表主鍵,主鍵可以不同生成策略 2 hibernate主鍵生成策略有很多的值 3 在cl

圖片的批量導入實現和對生成策略的思考

自己 得到 分段 長度 不能 import labels 消費 步驟 CDX一期上線的那天是我來公司最緊張的一天,因為這一天我要負責公司近5000張車型圖的導入工作。雖然在完成上傳和導入的代碼之後測試了很多遍,但是真正到了正式環境,卻真的很怕出問題。內搜、gift、以及本地

Hibernate框架的生成策略

如果 維護 自己 db2 取值 identity 返回 nat 數字   在Hibernate中,id元素的<generator>子元素用於生成持久化類的對象的唯一標識符,也就是主鍵。Hibernate框架中定義了許多主鍵生成策略類,也叫生成器類。所有的生成器類