[英]Sequence generator : JAVA/JPA/SPRING
問題 :是否可以不使用對偶選擇someSequence來生成序列號; ?
問題 : @GeneratedValue
和@SequenceGenerator
默認使用select someSequence from dual;
為我的身份證獲取nextval。 但是我的用戶沒有從雙重表中選擇的權限,因此我只能使用id = sequence.nextval,但我不知道如何在Entity類中使用它。 還是應該將id值傳遞給諸如sequence.nextval之類的實體構造函數?
用法: Oracle DB,CrudRepository,save()方法。
我認為您需要編寫自己的策略並使用GenericGenerator
注釋。 這個答案可能對您有幫助: 鏈接
您可以在以下查詢的幫助下插入id:
select max(id) from <<tableName>>;
如果無法從對偶表中進行選擇,則可以查詢自己的表,找到最大id,將其遞增1並將其分配為新的id。
您需要首先在Oracle中創建序列:
CREATE SEQUENCE USER_SEQUENCE START WITH 1 INCREMENT BY 10;
然后注釋您的班級,如下所示:
@Entity
@SequenceGenerator(name="USER_SEQUENCE_GENERATOR", sequenceName="USER_SEQUENCE", initialValue=1, allocationSize=10)
public class User {
@Id
@Column(name="USER_ID")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="USER_SEQUENCE_GENERATOR")
private Long userId;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.