簡體   English   中英

使用oracle在hibernate中自動增加

[英]Auto Increment in hibernate using oracle

我是hibernate的新手,我想在我的表中插入主號碼以進行唯一識別。 我使用Oracle作為我的數據庫,所以我需要在oracle中創建序列來獲取自動增量生成號嗎?

我使用下面的代碼,但它無法正常工作。 我還沒有創建任何序列。

 @Id
 @Column(name = "id" )
 @GeneratedValue ( strategy = GenerationType.TABLE)

我使用過AUTOSEQUENCEIDENTITY但對我來說沒什么用。

這是在JPA映射實體中使用Oracle序列的一種方法:

@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQUENCE_NAME")
@SequenceGenerator(name = "SEQUENCE_NAME", sequenceName = "SEQUENCE_NAME", allocationSize = 1, initialValue = 1)

通過這種方式,您的persist()方法將要求序列的下一個值,以便將其用作條目的ID。

你可以使用@GeneratedValue(strategy=GenerationType.AUTO)

@Id
@Column(name = "id" )
@GeneratedValue(strategy=GenerationType.AUTO)

GenerationType.TABLE選項中,ID值將填充其他表的列。

如果您使用的是strategy=GenerationType.TABLE ,則需要提及您的ID將填充的表格。

例如,

@GeneratedValue(strategy=GenerationType.TABLE, generator="course")
@TableGenerator(
    name="course",
    table="GENERATOR_TABLE",
    pkColumnName = "key",
    valueColumnName = "next",
    pkColumnValue="course",
    allocationSize=30
)

而對於其他選項,您可以使用GenerationType.AUTO選項,讓hibernate根據數據庫決定選擇哪個選項。

 @Id
 @Column(name = "id" )
 @GeneratedValue (strategy = GenerationType.AUTO)

並確保您正確配置了hibernate.cfg.xml文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM