![](/img/trans.png)
[英]hibernate - how to set auto increment in both mysql and oracle databases?
[英]Auto Increment in hibernate using oracle
我是hibernate的新手,我想在我的表中插入主號碼以進行唯一識別。 我使用Oracle作為我的數據庫,所以我需要在oracle中創建序列來獲取自動增量生成號嗎?
我使用下面的代碼,但它無法正常工作。 我還沒有創建任何序列。
@Id
@Column(name = "id" )
@GeneratedValue ( strategy = GenerationType.TABLE)
我使用過AUTO
, SEQUENCE
和IDENTITY
但對我來說沒什么用。
這是在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.