亂七八糟學習筆記之jpa標籤

JPA生成: @GeneratedValue(strategy=GenerationType.IDENTITY)

JPA提供的四種標準用法爲TABLE,SEQUENCE,IDENTITY,AUTO. 

TABLE:使用一個特定的數據庫表格來保存主鍵。 
SEQUENCE:根據底層數據庫的序列來生成主鍵,條件是數據庫支持序列。 
IDENTITY:主鍵由數據庫自動生成(主要是自動增長型) 

AUTO:主鍵由程序控制。 


hibernate:

@GeneratedValue(generator = "1"

@GenericGenerator(name = "1", strategy = "native")  


native: 對於 oracle 採用 Sequence 方式,對於MySQL 和 SQL Server 採用identity

uuid: 採用128位的uuid算法生成主鍵,uuid被編碼爲一個32位16進制數字的字符串。

assigned: 在插入數據的時候主鍵由程序處理(很常用),這是 <generator>元素沒有指定時的默認生成策略。等同於JPA中的AUTO。

increment: 插入數據的時候hibernate會給主鍵添加一個自增的主鍵,但是一個hibernate實例就維護一個計數器,所以在多個實例運行的時候不能使用這個方法。

注意mysql數據庫的自動生成與oracle的不同


項目註解摘錄:

@Entity
@Table(name = "t_product_margin_common", catalog = "exadmin", uniqueConstraints = @UniqueConstraint(columnNames = {"PRODUCT_ID", "MODE_TYPE", "TRADE_TYPE", "SERIES_GROUP_ID", "PERIOD_ID" }))
public class TProductMarginCommon.....


@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "ARITH_ID", unique = true, nullable = false, precision = 65, scale = 30)

@Column(name = "PRODUCT_ID", nullable = false, length = 30)


@Entity
@Table(name = "t_arith_params_details", catalog = "exadmin")


聯合主鍵

@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "arithId", column = @Column(name = "ARITH_ID", nullable = false, precision = 65, scale = 30)),
@AttributeOverride(name = "arithCode", column = @Column(name = "ARITH_CODE", nullable = false, length = 4)),
@AttributeOverride(name = "paramId", column = @Column(name = "PARAM_ID", nullable = false, length = 50)) })
public TArithParamsDetailsId getId() {}


@Embeddable
public class TArithParamsDetailsId 

發佈了29 篇原創文章 · 獲贊 0 · 訪問量 5425
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章